Преглед изворни кода

Equipment To Json added

najafi
mahmood19227 пре 1 година
родитељ
комит
e652b5c2c9
20 измењених фајлова са 1501 додато и 2257 уклоњено
  1. +16
    -16
      .ipynb_checkpoints/helper-checkpoint.ipynb
  2. +0
    -28
      CSharp/BasicInputs/WellProfile/CPathGeneration.f90
  3. +31
    -31
      CSharp/Equipments/ControlPanels/CBopControlPanel.f90
  4. +16
    -170
      CSharp/Equipments/ControlPanels/CChokeControlPanel.f90
  5. +21
    -23
      CSharp/Equipments/ControlPanels/CChokeManifold.f90
  6. +83
    -84
      CSharp/Equipments/ControlPanels/CDataDisplayConsole.f90
  7. +85
    -946
      CSharp/Equipments/ControlPanels/CDrillingConsole.f90
  8. +4
    -4
      CSharp/Equipments/ControlPanels/CHook.f90
  9. +0
    -16
      CSharp/Equipments/ControlPanels/CHookActions.f90
  10. +20
    -218
      CSharp/Equipments/ControlPanels/CStandPipeManifold.f90
  11. +18
    -245
      CSharp/Equipments/ControlPanels/CTopDrivePanel.f90
  12. +37
    -0
      CSharp/Equipments/DrillWatch/DrillWatch.f90
  13. +21
    -48
      CSharp/Equipments/Tanks/CTanks.f90
  14. +7
    -0
      Makefile
  15. +1
    -1
      Simulation/SimulationVariables.f90
  16. BIN
     
  17. +40
    -8
      Simulator.f90
  18. +19
    -21
      Text1.txt
  19. +38
    -146
      helper.ipynb
  20. +1044
    -252
      test.json

+ 16
- 16
.ipynb_checkpoints/helper-checkpoint.ipynb Прегледај датотеку

@@ -57,26 +57,26 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"call json%add(p,\"TopDriveTdsPowerState\",data%Equipments%ControlPanel%CTopDrive%TopDriveTdsPowerState)\n",
"call json%add(p,\"TopDriveTorqueWrench\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueWrench)\n",
"call json%add(p,\"TopDriveDrillTorqueState\",data%Equipments%ControlPanel%CTopDrive%TopDriveDrillTorqueState)\n",
"call json%add(p,\"TopDriveLinkTiltState\",data%Equipments%ControlPanel%CTopDrive%TopDriveLinkTiltState)\n",
"call json%add(p,\"TopDriveIbop\",data%Equipments%ControlPanel%CTopDrive%TopDriveIbop)\n",
"call json%add(p,\"TopDriveTorqueLimitKnob\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueLimitKnob)\n",
"call json%add(p,\"RpmKnob\",data%Equipments%ControlPanel%CTopDrive%RpmKnob)\n",
"call json%add(p,\"TopDriveOperationFaultLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveOperationFaultLed)\n",
"call json%add(p,\"TopDriveTdsPowerLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveTdsPowerLed)\n",
"call json%add(p,\"TopDriveTorqueWrenchLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueWrenchLed)\n",
"call json%add(p,\"TopDriveLinkTiltLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveLinkTiltLed)\n",
"call json%add(p,\"TopDriveIbopLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveIbopLed)\n",
"call json%add(p,\"TopDriveTorqueLimitGauge\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueLimitGauge)\n",
"call json%add(p,\"TopDriveTorqueGauge\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueGauge)\n",
"call json%add(p,\"TopDriveRpmGauge\",data%Equipments%ControlPanel%CTopDrive%TopDriveRpmGauge)\n"
"call json%add(p,\"TopDriveTdsPowerState\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveTdsPowerState)\n",
"call json%add(p,\"TopDriveTorqueWrench\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveTorqueWrench)\n",
"call json%add(p,\"TopDriveDrillTorqueState\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveDrillTorqueState)\n",
"call json%add(p,\"TopDriveLinkTiltState\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveLinkTiltState)\n",
"call json%add(p,\"TopDriveIbop\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveIbop)\n",
"call json%add(p,\"TopDriveTorqueLimitKnob\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveTorqueLimitKnob)\n",
"call json%add(p,\"RpmKnob\",data%EquipmentControl%ControlPanel%CTopDrive%RpmKnob)\n",
"call json%add(p,\"TopDriveOperationFaultLed\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveOperationFaultLed)\n",
"call json%add(p,\"TopDriveTdsPowerLed\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveTdsPowerLed)\n",
"call json%add(p,\"TopDriveTorqueWrenchLed\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveTorqueWrenchLed)\n",
"call json%add(p,\"TopDriveLinkTiltLed\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveLinkTiltLed)\n",
"call json%add(p,\"TopDriveIbopLed\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveIbopLed)\n",
"call json%add(p,\"TopDriveTorqueLimitGauge\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveTorqueLimitGauge)\n",
"call json%add(p,\"TopDriveTorqueGauge\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveTorqueGauge)\n",
"call json%add(p,\"TopDriveRpmGauge\",data%EquipmentControl%ControlPanel%CTopDrive%TopDriveRpmGauge)\n"
] ]
} }
], ],
"source": [ "source": [
"precode = \"\"\"call json%add(pform,\"\",data%Equipments%ControlPanel%CTopDrive%\"\"\"\n",
"precode = \"\"\"call json%add(pform,\"\",data%EquipmentControl%ControlPanel%CTopDrive%\"\"\"\n",
"input = open(\"Text1.txt\")\n", "input = open(\"Text1.txt\")\n",
"lines = input.readlines()\n", "lines = input.readlines()\n",
"for line in lines:\n", "for line in lines:\n",


+ 0
- 28
CSharp/BasicInputs/WellProfile/CPathGeneration.f90 Прегледај датотеку

@@ -1,4 +1,3 @@
<<<<<<< HEAD
module CPathGeneration module CPathGeneration
use SimulationVariables !@ use SimulationVariables !@
use json_module use json_module
@@ -43,31 +42,4 @@ module CPathGeneration
call json%add(parent,ppath) call json%add(parent,ppath)
end subroutine end subroutine
=======
module CPathGeneration
use SimulationVariables !@
use json_module
implicit none
public
contains

subroutine PathGenerationToJson(parent)

type(json_value),pointer :: parent
type(json_core) :: json
type(json_value),pointer :: p

! 1. create new node
call json%create_object(p,'Path')
! 2. add member of data type to new node
! call StringConfigurationToJson(p)
! call FormationToJson(p)
! call json%add(p,"",data%Configuration%Formation%Formations(i)%Abrasiveness)

! 3. add new node to parent
call json%add(parent,p)
end subroutine

>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
end module CPathGeneration end module CPathGeneration

+ 31
- 31
CSharp/Equipments/ControlPanels/CBopControlPanel.f90 Прегледај датотеку

@@ -5,44 +5,44 @@ module CBopControlPanel
public public
contains contains


subroutine CBopToJson(parent)
subroutine BopControlPanelToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
type(json_value),pointer :: p type(json_value),pointer :: p


! 1. create new node ! 1. create new node
call json%create_object(p,'CBop')
call json%create_object(p,'BopControl')
call json%add(p,"AnnularRegulatorSetControl",data%Equipments%ContolPanel%CBop%AnnularRegulatorSetControl)
call json%add(p,"AirMasterValve",data%Equipments%ContolPanel%CBop%AirMasterValve)
call json%add(p,"ByePassValve",data%Equipments%ContolPanel%CBop%ByePassValve)
call json%add(p,"AnnularValve",data%Equipments%ContolPanel%CBop%AnnularValve)
call json%add(p,"UpperRamsValve",data%Equipments%ContolPanel%CBop%UpperRamsValve)
call json%add(p,"MiddleRamsValve",data%Equipments%ContolPanel%CBop%MiddleRamsValve)
call json%add(p,"KillLineValve",data%Equipments%ContolPanel%CBop%KillLineValve)
call json%add(p,"ChokeLineValve",data%Equipments%ContolPanel%CBop%ChokeLineValve)
call json%add(p,"LowerRamsValve",data%Equipments%ContolPanel%CBop%LowerRamsValve)
call json%add(p,"ManifoldPressureGauge",data%Equipments%ContolPanel%CBop%ManifoldPressureGauge)
call json%add(p,"AirSupplyPressureGauge",data%Equipments%ContolPanel%CBop%AirSupplyPressureGauge)
call json%add(p,"AccumulatorPressureGauge",data%Equipments%ContolPanel%CBop%AccumulatorPressureGauge)
call json%add(p,"AnnularPressureGauge",data%Equipments%ContolPanel%CBop%AnnularPressureGauge)
call json%add(p,"AnnularOpenLED",data%Equipments%ContolPanel%CBop%AnnularOpenLED)
call json%add(p,"AnnularCloseLED",data%Equipments%ContolPanel%CBop%AnnularCloseLED)
call json%add(p,"UpperRamsOpenLED",data%Equipments%ContolPanel%CBop%UpperRamsOpenLED)
call json%add(p,"UpperRamsCloseLED",data%Equipments%ContolPanel%CBop%UpperRamsCloseLED)
call json%add(p,"MiddleRamsOpenLED",data%Equipments%ContolPanel%CBop%MiddleRamsOpenLED)
call json%add(p,"MiddleRamsCloseLED",data%Equipments%ContolPanel%CBop%MiddleRamsCloseLED)
call json%add(p,"KillLineOpenLED",data%Equipments%ContolPanel%CBop%KillLineOpenLED)
call json%add(p,"KillLineCloseLED",data%Equipments%ContolPanel%CBop%KillLineCloseLED)
call json%add(p,"ChokeLineOpenLED",data%Equipments%ContolPanel%CBop%ChokeLineOpenLED)
call json%add(p,"ChokeLineCloseLED",data%Equipments%ContolPanel%CBop%ChokeLineCloseLED)
call json%add(p,"LowerRamsOpenLED",data%Equipments%ContolPanel%CBop%LowerRamsOpenLED)
call json%add(p,"LowerRamsCloseLED",data%Equipments%ContolPanel%CBop%LowerRamsCloseLED)
call json%add(p,"AnnularStatus",data%Equipments%ContolPanel%CBop%AnnularStatus)
call json%add(p,"UpperRamsStatus",data%Equipments%ContolPanel%CBop%UpperRamsStatus)
call json%add(p,"MiddleRamsStatus",data%Equipments%ContolPanel%CBop%MiddleRamsStatus)
call json%add(p,"LowerRamsStatus",data%Equipments%ContolPanel%CBop%LowerRamsStatus)
call json%add(p,"AnnularRegulatorSetControl",data%EquipmentControl%BopControlPanel%AnnularRegulatorSetControl)
call json%add(p,"AirMasterValve",data%EquipmentControl%BopControlPanel%AirMasterValve)
call json%add(p,"ByePassValve",data%EquipmentControl%BopControlPanel%ByePassValve)
call json%add(p,"AnnularValve",data%EquipmentControl%BopControlPanel%AnnularValve)
call json%add(p,"UpperRamsValve",data%EquipmentControl%BopControlPanel%UpperRamsValve)
call json%add(p,"MiddleRamsValve",data%EquipmentControl%BopControlPanel%MiddleRamsValve)
call json%add(p,"KillLineValve",data%EquipmentControl%BopControlPanel%KillLineValve)
call json%add(p,"ChokeLineValve",data%EquipmentControl%BopControlPanel%ChokeLineValve)
call json%add(p,"LowerRamsValve",data%EquipmentControl%BopControlPanel%LowerRamsValve)
call json%add(p,"ManifoldPressureGauge",data%EquipmentControl%BopControlPanel%ManifoldPressureGauge)
call json%add(p,"AirSupplyPressureGauge",data%EquipmentControl%BopControlPanel%AirSupplyPressureGauge)
call json%add(p,"AccumulatorPressureGauge",data%EquipmentControl%BopControlPanel%AccumulatorPressureGauge)
call json%add(p,"AnnularPressureGauge",data%EquipmentControl%BopControlPanel%AnnularPressureGauge)
call json%add(p,"AnnularOpenLED",data%EquipmentControl%BopControlPanel%AnnularOpenLED)
call json%add(p,"AnnularCloseLED",data%EquipmentControl%BopControlPanel%AnnularCloseLED)
call json%add(p,"UpperRamsOpenLED",data%EquipmentControl%BopControlPanel%UpperRamsOpenLED)
call json%add(p,"UpperRamsCloseLED",data%EquipmentControl%BopControlPanel%UpperRamsCloseLED)
call json%add(p,"MiddleRamsOpenLED",data%EquipmentControl%BopControlPanel%MiddleRamsOpenLED)
call json%add(p,"MiddleRamsCloseLED",data%EquipmentControl%BopControlPanel%MiddleRamsCloseLED)
call json%add(p,"KillLineOpenLED",data%EquipmentControl%BopControlPanel%KillLineOpenLED)
call json%add(p,"KillLineCloseLED",data%EquipmentControl%BopControlPanel%KillLineCloseLED)
call json%add(p,"ChokeLineOpenLED",data%EquipmentControl%BopControlPanel%ChokeLineOpenLED)
call json%add(p,"ChokeLineCloseLED",data%EquipmentControl%BopControlPanel%ChokeLineCloseLED)
call json%add(p,"LowerRamsOpenLED",data%EquipmentControl%BopControlPanel%LowerRamsOpenLED)
call json%add(p,"LowerRamsCloseLED",data%EquipmentControl%BopControlPanel%LowerRamsCloseLED)
call json%add(p,"AnnularStatus",data%EquipmentControl%BopControlPanel%AnnularStatus)
call json%add(p,"UpperRamsStatus",data%EquipmentControl%BopControlPanel%UpperRamsStatus)
call json%add(p,"MiddleRamsStatus",data%EquipmentControl%BopControlPanel%MiddleRamsStatus)
call json%add(p,"LowerRamsStatus",data%EquipmentControl%BopControlPanel%LowerRamsStatus)


call json%add(parent,p) call json%add(parent,p)


+ 16
- 170
CSharp/Equipments/ControlPanels/CChokeControlPanel.f90 Прегледај датотеку

@@ -5,185 +5,31 @@ module CChokeControlPanel
public public
contains contains


subroutine CChokeToJson(parent)
subroutine ChokeControlPanelToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
type(json_value),pointer :: p type(json_value),pointer :: p


! 1. create new node ! 1. create new node
call json%create_object(p,'CChoke')
call json%add(p,"ChokePanelPumpSelectorSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelPumpSelectorSwitch)
call json%add(p,"ChokePanelStrokeResetSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelStrokeResetSwitch)
call json%add(p,"ChokeSelectorSwitch",data%Equipments%ContolPanel%CChoke%ChokeSelectorSwitch)
call json%add(p,"ChokeRateControlKnob",data%Equipments%ContolPanel%CChoke%ChokeRateControlKnob)
call json%add(p,"ChokeControlLever",data%Equipments%ContolPanel%CChoke%ChokeControlLever)
call json%add(p,"ChokePanelRigAirSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelRigAirSwitch)
call json%add(p,"EnableAutoChoke",data%Equipments%ContolPanel%CChoke%EnableAutoChoke)
call json%add(p,"StandPipePressure",data%Equipments%ContolPanel%CChoke%StandPipePressure)
call json%add(p,"CasingPressure",data%Equipments%ContolPanel%CChoke%CasingPressure)
call json%add(p,"ChokePosition",data%Equipments%ContolPanel%CChoke%ChokePosition)
call json%add(p,"ChokePanelSPMCounter",data%Equipments%ContolPanel%CChoke%ChokePanelSPMCounter)
call json%add(p,"ChokePanelTotalStrokeCounter",data%Equipments%ContolPanel%CChoke%ChokePanelTotalStrokeCounter)
call json%add(p,"Choke1LED",data%Equipments%ContolPanel%CChoke%Choke1LED)
call json%add(p,"Choke2LED",data%Equipments%ContolPanel%CChoke%Choke2LED)
call json%create_object(p,'ChokeControl')
call json%add(p,"ChokePanelPumpSelectorSwitch",data%EquipmentControl%ChokeControlPanel%ChokePanelPumpSelectorSwitch)
call json%add(p,"ChokePanelStrokeResetSwitch",data%EquipmentControl%ChokeControlPanel%ChokePanelStrokeResetSwitch)
call json%add(p,"ChokeSelectorSwitch",data%EquipmentControl%ChokeControlPanel%ChokeSelectorSwitch)
call json%add(p,"ChokeRateControlKnob",data%EquipmentControl%ChokeControlPanel%ChokeRateControlKnob)
call json%add(p,"ChokeControlLever",data%EquipmentControl%ChokeControlPanel%ChokeControlLever)
call json%add(p,"ChokePanelRigAirSwitch",data%EquipmentControl%ChokeControlPanel%ChokePanelRigAirSwitch)
call json%add(p,"EnableAutoChoke",data%EquipmentControl%ChokeControlPanel%EnableAutoChoke)
call json%add(p,"StandPipePressure",data%EquipmentControl%ChokeControlPanel%StandPipePressure)
call json%add(p,"CasingPressure",data%EquipmentControl%ChokeControlPanel%CasingPressure)
call json%add(p,"ChokePosition",data%EquipmentControl%ChokeControlPanel%ChokePosition)
call json%add(p,"ChokePanelSPMCounter",data%EquipmentControl%ChokeControlPanel%ChokePanelSPMCounter)
call json%add(p,"ChokePanelTotalStrokeCounter",data%EquipmentControl%ChokeControlPanel%ChokePanelTotalStrokeCounter)
call json%add(p,"Choke1LED",data%EquipmentControl%ChokeControlPanel%Choke1LED)
call json%add(p,"Choke2LED",data%EquipmentControl%ChokeControlPanel%Choke2LED)




call json%add(parent,p) call json%add(parent,p)
end subroutine end subroutine
! Input routines
subroutine SetChokePanelPumpSelectorSwitch(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetChokePanelPumpSelectorSwitch
!DEC$ ATTRIBUTES ALIAS: 'SetChokePanelPumpSelectorSwitch' :: SetChokePanelPumpSelectorSwitch
implicit none
integer, intent(in) :: v
data%EquipmentControl%ChokeControlPanel%ChokePanelPumpSelectorSwitch = v
#ifdef deb
print*, 'ChokePanelPumpSelectorSwitch=', data%EquipmentControl%ChokeControlPanel%ChokePanelPumpSelectorSwitch
#endif
end subroutine

subroutine SetChokePanelStrokeResetSwitch(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetChokePanelStrokeResetSwitch
!DEC$ ATTRIBUTES ALIAS: 'SetChokePanelStrokeResetSwitch' :: SetChokePanelStrokeResetSwitch
implicit none
logical, intent(in) :: v
data%EquipmentControl%ChokeControlPanel%ChokePanelStrokeResetSwitch = v
#ifdef deb
print*, 'ChokePanelStrokeResetSwitch=', data%EquipmentControl%ChokeControlPanel%ChokePanelStrokeResetSwitch
#endif
end subroutine

subroutine SetChokeSelectorSwitch(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetChokeSelectorSwitch
!DEC$ ATTRIBUTES ALIAS: 'SetChokeSelectorSwitch' :: SetChokeSelectorSwitch
implicit none
logical, intent(in) :: v
data%EquipmentControl%ChokeControlPanel%ChokeSelectorSwitch = v
#ifdef deb
print*, 'ChokeSelectorSwitch=', data%EquipmentControl%ChokeControlPanel%ChokeSelectorSwitch
#endif
end subroutine

subroutine SetChokeRateControlKnob(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetChokeRateControlKnob
!DEC$ ATTRIBUTES ALIAS: 'SetChokeRateControlKnob' :: SetChokeRateControlKnob
implicit none
real*8, intent(in) :: v
!character(8) :: date
!character(10) :: time
!character(5) :: zone
!integer,dimension(8) :: values
data%EquipmentControl%ChokeControlPanel%ChokeRateControlKnob = v
#ifdef deb
!call date_and_time(date,time,zone,values)
!!print '(a,2x,a,2x,a)', date, time, zone
!print '(8i5)', values
print*, 'ChokeRateControlKnob=', data%EquipmentControl%ChokeControlPanel%ChokeRateControlKnob
#endif
end subroutine

subroutine SetChokeControlLever(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetChokeControlLever
!DEC$ ATTRIBUTES ALIAS: 'SetChokeControlLever' :: SetChokeControlLever
implicit none
real*8, intent(in) :: v
data%EquipmentControl%ChokeControlPanel%ChokeControlLever = v
#ifdef deb
print*, 'ChokeControlLever=', data%EquipmentControl%ChokeControlPanel%ChokeControlLever
#endif
end subroutine

subroutine SetChokePanelRigAirSwitch(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetChokePanelRigAirSwitch
!DEC$ ATTRIBUTES ALIAS: 'SetChokePanelRigAirSwitch' :: SetChokePanelRigAirSwitch
implicit none
logical, intent(in) :: v
data%EquipmentControl%ChokeControlPanel%ChokePanelRigAirSwitch = v
#ifdef deb
print*, 'ChokePanelRigAirSwitch=', data%EquipmentControl%ChokeControlPanel%ChokePanelRigAirSwitch
#endif
end subroutine


subroutine SetEnableAutoChoke(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetEnableAutoChoke
!DEC$ ATTRIBUTES ALIAS: 'SetEnableAutoChoke' :: SetEnableAutoChoke
implicit none
logical, intent(in) :: v
data%EquipmentControl%ChokeControlPanel%EnableAutoChoke = v
#ifdef deb
print*, 'EnableAutoChoke=', data%EquipmentControl%ChokeControlPanel%EnableAutoChoke
#endif
end subroutine
! Output routines
real(8) function GetStandPipePressure()
!DEC$ ATTRIBUTES DLLEXPORT :: GetStandPipePressure
!DEC$ ATTRIBUTES ALIAS: 'GetStandPipePressure' :: GetStandPipePressure
implicit none
GetStandPipePressure = data%EquipmentControl%ChokeControlPanel%StandPipePressure
end function

real(8) function GetCasingPressure()
!DEC$ ATTRIBUTES DLLEXPORT :: GetCasingPressure
!DEC$ ATTRIBUTES ALIAS: 'GetCasingPressure' :: GetCasingPressure
implicit none
GetCasingPressure = data%EquipmentControl%ChokeControlPanel%CasingPressure
end function

real(8) function GetChokePosition()
!DEC$ ATTRIBUTES DLLEXPORT :: GetChokePosition
!DEC$ ATTRIBUTES ALIAS: 'GetChokePosition' :: GetChokePosition
implicit none
GetChokePosition = data%EquipmentControl%ChokeControlPanel%ChokePosition
end function

real(8) function GetChokePanelSPMCounter()
!DEC$ ATTRIBUTES DLLEXPORT :: GetChokePanelSPMCounter
!DEC$ ATTRIBUTES ALIAS: 'GetChokePanelSPMCounter' :: GetChokePanelSPMCounter
implicit none
!GetChokePanelSPMCounter = 0
GetChokePanelSPMCounter = data%EquipmentControl%ChokeControlPanel%ChokePanelSPMCounter
end function

real(8) function GetChokePanelTotalStrokeCounter()
!DEC$ ATTRIBUTES DLLEXPORT :: GetChokePanelTotalStrokeCounter
!DEC$ ATTRIBUTES ALIAS: 'GetChokePanelTotalStrokeCounter' :: GetChokePanelTotalStrokeCounter
implicit none
!GetChokePanelTotalStrokeCounter = 0
GetChokePanelTotalStrokeCounter = data%EquipmentControl%ChokeControlPanel%ChokePanelTotalStrokeCounter
end function

integer function GetChoke1LED()
!DEC$ ATTRIBUTES DLLEXPORT :: GetChoke1LED
!DEC$ ATTRIBUTES ALIAS: 'GetChoke1LED' :: GetChoke1LED
implicit none
GetChoke1LED = data%EquipmentControl%ChokeControlPanel%Choke1LED
end function

integer function GetChoke2LED()
!DEC$ ATTRIBUTES DLLEXPORT :: GetChoke2LED
!DEC$ ATTRIBUTES ALIAS: 'GetChoke2LED' :: GetChoke2LED
implicit none
GetChoke2LED = data%EquipmentControl%ChokeControlPanel%Choke2LED
end function


end module CChokeControlPanel end module CChokeControlPanel

+ 21
- 23
CSharp/Equipments/ControlPanels/CChokeManifold.f90 Прегледај датотеку

@@ -7,35 +7,33 @@ module CChokeManifold
public public
contains contains


subroutine CChokeManifoldToJson(parent)
subroutine ChokeManifoldToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
type(json_value),pointer :: p type(json_value),pointer :: p


! 1. create new node ! 1. create new node
call json%create_object(p,'CChokeManifold')
call json%add(p,"ChokeManifoldValve1",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve1)
call json%add(p,"ChokeManifoldValve2",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve2)
call json%add(p,"LeftManualChoke",data%Equipments%ContolPanel%CChokeManifold%LeftManualChoke)
call json%add(p,"ChokeManifoldValve4",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve4)
call json%add(p,"ChokeManifoldValve5",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve5)
call json%add(p,"RightManualChoke",data%Equipments%ContolPanel%CChokeManifold%RightManualChoke)
call json%add(p,"ChokeManifoldValve7",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve7)
call json%add(p,"ChokeManifoldValve8",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve8)
call json%add(p,"ChokeManifoldValve9",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve9)
call json%add(p,"ChokeManifoldValve10",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve10)
call json%add(p,"ChokeManifoldValve11",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve11)
call json%add(p,"ChokeManifoldValve12",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve12)
call json%add(p,"ChokeManifoldValve13",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve13)
call json%add(p,"HydraulicChock1",data%Equipments%ContolPanel%CChokeManifold%HydraulicChock1)
call json%add(p,"HydraulicChock2",data%Equipments%ContolPanel%CChokeManifold%HydraulicChock2)
call json%add(p,"HyChock1OnProblem",data%Equipments%ContolPanel%CChokeManifold%HyChock1OnProblem)
call json%add(p,"HyChock2OnProblem",data%Equipments%ContolPanel%CChokeManifold%HyChock2OnProblem)
call json%add(p,"LeftManChokeOnProblem",data%Equipments%ContolPanel%CChokeManifold%LeftManChokeOnProblem)
call json%add(p,"RightManChokeOnProblem",data%Equipments%ContolPanel%CChokeManifold%RightManChokeOnProblem)

call json%create_object(p,'ChokeManifold')
call json%add(p,"ChokeManifoldValve1",data%EquipmentControl%ChokeManifold%ChokeManifoldValve1)
call json%add(p,"ChokeManifoldValve2",data%EquipmentControl%ChokeManifold%ChokeManifoldValve2)
call json%add(p,"LeftManualChoke",data%EquipmentControl%ChokeManifold%LeftManualChoke)
call json%add(p,"ChokeManifoldValve4",data%EquipmentControl%ChokeManifold%ChokeManifoldValve4)
call json%add(p,"ChokeManifoldValve5",data%EquipmentControl%ChokeManifold%ChokeManifoldValve5)
call json%add(p,"RightManualChoke",data%EquipmentControl%ChokeManifold%RightManualChoke)
call json%add(p,"ChokeManifoldValve7",data%EquipmentControl%ChokeManifold%ChokeManifoldValve7)
call json%add(p,"ChokeManifoldValve8",data%EquipmentControl%ChokeManifold%ChokeManifoldValve8)
call json%add(p,"ChokeManifoldValve9",data%EquipmentControl%ChokeManifold%ChokeManifoldValve9)
call json%add(p,"ChokeManifoldValve10",data%EquipmentControl%ChokeManifold%ChokeManifoldValve10)
call json%add(p,"ChokeManifoldValve11",data%EquipmentControl%ChokeManifold%ChokeManifoldValve11)
call json%add(p,"ChokeManifoldValve12",data%EquipmentControl%ChokeManifold%ChokeManifoldValve12)
call json%add(p,"ChokeManifoldValve13",data%EquipmentControl%ChokeManifold%ChokeManifoldValve13)
call json%add(p,"HydraulicChock1",data%EquipmentControl%ChokeManifold%HydraulicChock1)
call json%add(p,"HydraulicChock2",data%EquipmentControl%ChokeManifold%HydraulicChock2)
call json%add(p,"HyChock1OnProblem",data%EquipmentControl%ChokeManifold%HyChock1OnProblem)
call json%add(p,"HyChock2OnProblem",data%EquipmentControl%ChokeManifold%HyChock2OnProblem)
call json%add(p,"LeftManChokeOnProblem",data%EquipmentControl%ChokeManifold%LeftManChokeOnProblem)
call json%add(p,"RightManChokeOnProblem",data%EquipmentControl%ChokeManifold%RightManChokeOnProblem)


call json%add(parent,p) call json%add(parent,p)
end subroutine end subroutine


+ 83
- 84
CSharp/Equipments/ControlPanels/CDataDisplayConsole.f90 Прегледај датотеку

@@ -5,96 +5,95 @@ module CDataDisplayConsole
public public
contains contains


subroutine CDataDisplayToJson(parent)
subroutine DataDisplayConsoleToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
type(json_value),pointer :: p type(json_value),pointer :: p


! 1. create new node ! 1. create new node
call json%create_object(p,'CDataDisplay')
call json%add(p,"TripAlarmLow",data%Equipments%ControlPanel%CDataDisplay%TripAlarmLow)
call json%add(p,"TripAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%TripAlarmHigh)
call json%add(p,"RetFlowAlarmLow",data%Equipments%ControlPanel%CDataDisplay%RetFlowAlarmLow)
call json%add(p,"RetFlowAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%RetFlowAlarmHigh)
call json%add(p,"PitAlarmLow",data%Equipments%ControlPanel%CDataDisplay%PitAlarmLow)
call json%add(p,"PitAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%PitAlarmHigh)
call json%add(p,"PortWeightOnBit",data%Equipments%ControlPanel%CDataDisplay%PortWeightOnBit)
call json%add(p,"PortHookLoad",data%Equipments%ControlPanel%CDataDisplay%PortHookLoad)
call json%add(p,"PortCasingPressure",data%Equipments%ControlPanel%CDataDisplay%PortCasingPressure)
call json%add(p,"PortPumpPressure",data%Equipments%ControlPanel%CDataDisplay%PortPumpPressure)
call json%add(p,"TripTankSetAlarmLow",data%Equipments%ControlPanel%CDataDisplay%TripTankSetAlarmLow)
call json%add(p,"TripTankSetAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%TripTankSetAlarmHigh)
call json%add(p,"TripTankSetAlarmSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankSetAlarmSwitch)
call json%add(p,"TripTankPowerSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankPowerSwitch)
call json%add(p,"TripTankPumpSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankPumpSwitch)
call json%add(p,"TripTankHornSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankHornSwitch)
call json%add(p,"AcidGasDetectionHornSwitch",data%Equipments%ControlPanel%CDataDisplay%AcidGasDetectionHornSwitch)
call json%add(p,"TotalStrokeCounterResetSwitch",data%Equipments%ControlPanel%CDataDisplay%TotalStrokeCounterResetSwitch)
call json%add(p,"DrillingTrippingSelectorSwitch",data%Equipments%ControlPanel%CDataDisplay%DrillingTrippingSelectorSwitch)
call json%add(p,"MVTSetAlarmLowKnob",data%Equipments%ControlPanel%CDataDisplay%MVTSetAlarmLowKnob)
call json%add(p,"MVTSetAlarmHighKnob",data%Equipments%ControlPanel%CDataDisplay%MVTSetAlarmHighKnob)
call json%add(p,"MVTSetAlarmSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTSetAlarmSwitch)
call json%add(p,"MudTank1Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank1Switch)
call json%add(p,"MudTank2Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank2Switch)
call json%add(p,"MudTank3Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank3Switch)
call json%add(p,"MudTank4Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank4Switch)
call json%add(p,"MVTFineKnob",data%Equipments%ControlPanel%CDataDisplay%MVTFineKnob)
call json%add(p,"MVTCoarseKnob",data%Equipments%ControlPanel%CDataDisplay%MVTCoarseKnob)
call json%add(p,"MVTHornSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTHornSwitch)
call json%add(p,"MVTDeviationTripSelectionSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTDeviationTripSelectionSwitch)
call json%add(p,"MVTPowerSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTPowerSwitch)
call json%add(p,"MFFIResetTotalStrokes",data%Equipments%ControlPanel%CDataDisplay%MFFIResetTotalStrokes)
call json%add(p,"MFFIResetFillCounter",data%Equipments%ControlPanel%CDataDisplay%MFFIResetFillCounter)
call json%add(p,"MFFIPumpSelectorSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIPumpSelectorSwitch)
call json%add(p,"MFFIFillSPMSelectorSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIFillSPMSelectorSwitch)
call json%add(p,"MFFISetAlarmLowKnob",data%Equipments%ControlPanel%CDataDisplay%MFFISetAlarmLowKnob)
call json%add(p,"MFFISetAlarmHighKnob",data%Equipments%ControlPanel%CDataDisplay%MFFISetAlarmHighKnob)
call json%add(p,"MFFISetAlarmSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFISetAlarmSwitch)
call json%add(p,"MFFIPowerSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIPowerSwitch)
call json%add(p,"MFFIHornSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIHornSwitch)
call json%add(p,"ResetWob",data%Equipments%ControlPanel%CDataDisplay%ResetWob)
call json%add(p,"Clutch",data%Equipments%ControlPanel%CDataDisplay%Clutch)
call json%add(p,"WOBPointer",data%Equipments%ControlPanel%CDataDisplay%WOBPointer)
call json%add(p,"HookLoadPointer",data%Equipments%ControlPanel%CDataDisplay%HookLoadPointer)
call json%add(p,"TripTankGauge",data%Equipments%ControlPanel%CDataDisplay%TripTankGauge)
call json%add(p,"TripTankAlarmLED",data%Equipments%ControlPanel%CDataDisplay%TripTankAlarmLED)
call json%add(p,"TripTankPumpLED",data%Equipments%ControlPanel%CDataDisplay%TripTankPumpLED)
call json%add(p,"StandPipePressureGauge",data%Equipments%ControlPanel%CDataDisplay%StandPipePressureGauge)
call json%add(p,"CasingPressureGauge",data%Equipments%ControlPanel%CDataDisplay%CasingPressureGauge)
call json%add(p,"MP1SPMGauge",data%Equipments%ControlPanel%CDataDisplay%MP1SPMGauge)
call json%add(p,"MP2SPMGauge",data%Equipments%ControlPanel%CDataDisplay%MP2SPMGauge)
call json%add(p,"ReturnLineTempGauge",data%Equipments%ControlPanel%CDataDisplay%ReturnLineTempGauge)
call json%add(p,"RotaryTorqueGauge",data%Equipments%ControlPanel%CDataDisplay%RotaryTorqueGauge)
call json%add(p,"RotaryRPMGauge",data%Equipments%ControlPanel%CDataDisplay%RotaryRPMGauge)
call json%add(p,"AcidGasDetectionLED",data%Equipments%ControlPanel%CDataDisplay%AcidGasDetectionLED)
call json%add(p,"TotalStrokeCounter",data%Equipments%ControlPanel%CDataDisplay%TotalStrokeCounter)
call json%add(p,"TotalStrokeCounter_temp",data%Equipments%ControlPanel%CDataDisplay%TotalStrokeCounter_temp)
call json%add(p,"PitGainLossGauge",data%Equipments%ControlPanel%CDataDisplay%PitGainLossGauge)
call json%add(p,"MudTanksVolumeGauge",data%Equipments%ControlPanel%CDataDisplay%MudTanksVolumeGauge)
call json%add(p,"MVTAlarmLED",data%Equipments%ControlPanel%CDataDisplay%MVTAlarmLED)
call json%add(p,"ReturnMudFlowGauge",data%Equipments%ControlPanel%CDataDisplay%ReturnMudFlowGauge)
call json%add(p,"FillStrokeCounter",data%Equipments%ControlPanel%CDataDisplay%FillStrokeCounter)
call json%add(p,"MFFITotalStrokeCounter",data%Equipments%ControlPanel%CDataDisplay%MFFITotalStrokeCounter)
call json%add(p,"MFFIAlarmLED",data%Equipments%ControlPanel%CDataDisplay%MFFIAlarmLED)
call json%add(p,"MFFIPumpLED",data%Equipments%ControlPanel%CDataDisplay%MFFIPumpLED)
call json%add(p,"TotalWellDepth",data%Equipments%ControlPanel%CDataDisplay%TotalWellDepth)
call json%add(p,"BitDepth",data%Equipments%ControlPanel%CDataDisplay%BitDepth)
call json%add(p,"HookLoad",data%Equipments%ControlPanel%CDataDisplay%HookLoad)
call json%add(p,"StandPipePressure",data%Equipments%ControlPanel%CDataDisplay%StandPipePressure)
call json%add(p,"CasingPressure",data%Equipments%ControlPanel%CDataDisplay%CasingPressure)
call json%add(p,"MP1SPM",data%Equipments%ControlPanel%CDataDisplay%MP1SPM)
call json%add(p,"MP2SPM",data%Equipments%ControlPanel%CDataDisplay%MP2SPM)
call json%add(p,"RTTorque",data%Equipments%ControlPanel%CDataDisplay%RTTorque)
call json%add(p,"RTRPM",data%Equipments%ControlPanel%CDataDisplay%RTRPM)
call json%add(p,"WOP",data%Equipments%ControlPanel%CDataDisplay%WOP)
call json%add(p,"ROP",data%Equipments%ControlPanel%CDataDisplay%ROP)
call json%add(p,"MudWeightIn",data%Equipments%ControlPanel%CDataDisplay%MudWeightIn)
call json%add(p,"MudWeightOut",data%Equipments%ControlPanel%CDataDisplay%MudWeightOut)
call json%add(p,"Buzzer1",data%Equipments%ControlPanel%CDataDisplay%Buzzer1)
call json%add(p,"Buzzer2",data%Equipments%ControlPanel%CDataDisplay%Buzzer2)
call json%add(p,"Buzzer3",data%Equipments%ControlPanel%CDataDisplay%Buzzer3)
call json%add(p,"Buzzer4",data%Equipments%ControlPanel%CDataDisplay%Buzzer4)
call json%create_object(p,'DataDisplay')
call json%add(p,"TripAlarmLow",data%EquipmentControl%DataDisplayConsole%TripAlarmLow)
call json%add(p,"TripAlarmHigh",data%EquipmentControl%DataDisplayConsole%TripAlarmHigh)
call json%add(p,"RetFlowAlarmLow",data%EquipmentControl%DataDisplayConsole%RetFlowAlarmLow)
call json%add(p,"RetFlowAlarmHigh",data%EquipmentControl%DataDisplayConsole%RetFlowAlarmHigh)
call json%add(p,"PitAlarmLow",data%EquipmentControl%DataDisplayConsole%PitAlarmLow)
call json%add(p,"PitAlarmHigh",data%EquipmentControl%DataDisplayConsole%PitAlarmHigh)
call json%add(p,"PortWeightOnBit",data%EquipmentControl%DataDisplayConsole%PortWeightOnBit)
call json%add(p,"PortHookLoad",data%EquipmentControl%DataDisplayConsole%PortHookLoad)
call json%add(p,"PortCasingPressure",data%EquipmentControl%DataDisplayConsole%PortCasingPressure)
call json%add(p,"PortPumpPressure",data%EquipmentControl%DataDisplayConsole%PortPumpPressure)
call json%add(p,"TripTankSetAlarmLow",data%EquipmentControl%DataDisplayConsole%TripTankSetAlarmLow)
call json%add(p,"TripTankSetAlarmHigh",data%EquipmentControl%DataDisplayConsole%TripTankSetAlarmHigh)
call json%add(p,"TripTankSetAlarmSwitch",data%EquipmentControl%DataDisplayConsole%TripTankSetAlarmSwitch)
call json%add(p,"TripTankPowerSwitch",data%EquipmentControl%DataDisplayConsole%TripTankPowerSwitch)
call json%add(p,"TripTankPumpSwitch",data%EquipmentControl%DataDisplayConsole%TripTankPumpSwitch)
call json%add(p,"TripTankHornSwitch",data%EquipmentControl%DataDisplayConsole%TripTankHornSwitch)
call json%add(p,"AcidGasDetectionHornSwitch",data%EquipmentControl%DataDisplayConsole%AcidGasDetectionHornSwitch)
call json%add(p,"TotalStrokeCounterResetSwitch",data%EquipmentControl%DataDisplayConsole%TotalStrokeCounterResetSwitch)
call json%add(p,"DrillingTrippingSelectorSwitch",data%EquipmentControl%DataDisplayConsole%DrillingTrippingSelectorSwitch)
call json%add(p,"MVTSetAlarmLowKnob",data%EquipmentControl%DataDisplayConsole%MVTSetAlarmLowKnob)
call json%add(p,"MVTSetAlarmHighKnob",data%EquipmentControl%DataDisplayConsole%MVTSetAlarmHighKnob)
call json%add(p,"MVTSetAlarmSwitch",data%EquipmentControl%DataDisplayConsole%MVTSetAlarmSwitch)
call json%add(p,"MudTank1Switch",data%EquipmentControl%DataDisplayConsole%MudTank1Switch)
call json%add(p,"MudTank2Switch",data%EquipmentControl%DataDisplayConsole%MudTank2Switch)
call json%add(p,"MudTank3Switch",data%EquipmentControl%DataDisplayConsole%MudTank3Switch)
call json%add(p,"MudTank4Switch",data%EquipmentControl%DataDisplayConsole%MudTank4Switch)
call json%add(p,"MVTFineKnob",data%EquipmentControl%DataDisplayConsole%MVTFineKnob)
call json%add(p,"MVTCoarseKnob",data%EquipmentControl%DataDisplayConsole%MVTCoarseKnob)
call json%add(p,"MVTHornSwitch",data%EquipmentControl%DataDisplayConsole%MVTHornSwitch)
call json%add(p,"MVTDeviationTripSelectionSwitch",data%EquipmentControl%DataDisplayConsole%MVTDeviationTripSelectionSwitch)
call json%add(p,"MVTPowerSwitch",data%EquipmentControl%DataDisplayConsole%MVTPowerSwitch)
call json%add(p,"MFFIResetTotalStrokes",data%EquipmentControl%DataDisplayConsole%MFFIResetTotalStrokes)
call json%add(p,"MFFIResetFillCounter",data%EquipmentControl%DataDisplayConsole%MFFIResetFillCounter)
call json%add(p,"MFFIPumpSelectorSwitch",data%EquipmentControl%DataDisplayConsole%MFFIPumpSelectorSwitch)
call json%add(p,"MFFIFillSPMSelectorSwitch",data%EquipmentControl%DataDisplayConsole%MFFIFillSPMSelectorSwitch)
call json%add(p,"MFFISetAlarmLowKnob",data%EquipmentControl%DataDisplayConsole%MFFISetAlarmLowKnob)
call json%add(p,"MFFISetAlarmHighKnob",data%EquipmentControl%DataDisplayConsole%MFFISetAlarmHighKnob)
call json%add(p,"MFFISetAlarmSwitch",data%EquipmentControl%DataDisplayConsole%MFFISetAlarmSwitch)
call json%add(p,"MFFIPowerSwitch",data%EquipmentControl%DataDisplayConsole%MFFIPowerSwitch)
call json%add(p,"MFFIHornSwitch",data%EquipmentControl%DataDisplayConsole%MFFIHornSwitch)
call json%add(p,"ResetWob",data%EquipmentControl%DataDisplayConsole%ResetWob)
call json%add(p,"Clutch",data%EquipmentControl%DataDisplayConsole%Clutch)
call json%add(p,"WOBPointer",data%EquipmentControl%DataDisplayConsole%WOBPointer)
call json%add(p,"HookLoadPointer",data%EquipmentControl%DataDisplayConsole%HookLoadPointer)
call json%add(p,"TripTankGauge",data%EquipmentControl%DataDisplayConsole%TripTankGauge)
call json%add(p,"TripTankAlarmLED",data%EquipmentControl%DataDisplayConsole%TripTankAlarmLED)
call json%add(p,"TripTankPumpLED",data%EquipmentControl%DataDisplayConsole%TripTankPumpLED)
call json%add(p,"StandPipePressureGauge",data%EquipmentControl%DataDisplayConsole%StandPipePressureGauge)
call json%add(p,"CasingPressureGauge",data%EquipmentControl%DataDisplayConsole%CasingPressureGauge)
call json%add(p,"MP1SPMGauge",data%EquipmentControl%DataDisplayConsole%MP1SPMGauge)
call json%add(p,"MP2SPMGauge",data%EquipmentControl%DataDisplayConsole%MP2SPMGauge)
call json%add(p,"ReturnLineTempGauge",data%EquipmentControl%DataDisplayConsole%ReturnLineTempGauge)
call json%add(p,"RotaryTorqueGauge",data%EquipmentControl%DataDisplayConsole%RotaryTorqueGauge)
call json%add(p,"RotaryRPMGauge",data%EquipmentControl%DataDisplayConsole%RotaryRPMGauge)
call json%add(p,"AcidGasDetectionLED",data%EquipmentControl%DataDisplayConsole%AcidGasDetectionLED)
call json%add(p,"TotalStrokeCounter",data%EquipmentControl%DataDisplayConsole%TotalStrokeCounter)
call json%add(p,"PitGainLossGauge",data%EquipmentControl%DataDisplayConsole%PitGainLossGauge)
call json%add(p,"MudTanksVolumeGauge",data%EquipmentControl%DataDisplayConsole%MudTanksVolumeGauge)
call json%add(p,"MVTAlarmLED",data%EquipmentControl%DataDisplayConsole%MVTAlarmLED)
call json%add(p,"ReturnMudFlowGauge",data%EquipmentControl%DataDisplayConsole%ReturnMudFlowGauge)
call json%add(p,"FillStrokeCounter",data%EquipmentControl%DataDisplayConsole%FillStrokeCounter)
call json%add(p,"MFFITotalStrokeCounter",data%EquipmentControl%DataDisplayConsole%MFFITotalStrokeCounter)
call json%add(p,"MFFIAlarmLED",data%EquipmentControl%DataDisplayConsole%MFFIAlarmLED)
call json%add(p,"MFFIPumpLED",data%EquipmentControl%DataDisplayConsole%MFFIPumpLED)
call json%add(p,"TotalWellDepth",data%EquipmentControl%DataDisplayConsole%TotalWellDepth)
call json%add(p,"BitDepth",data%EquipmentControl%DataDisplayConsole%BitDepth)
call json%add(p,"HookLoad",data%EquipmentControl%DataDisplayConsole%HookLoad)
call json%add(p,"StandPipePressure",data%EquipmentControl%DataDisplayConsole%StandPipePressure)
call json%add(p,"CasingPressure",data%EquipmentControl%DataDisplayConsole%CasingPressure)
call json%add(p,"MP1SPM",data%EquipmentControl%DataDisplayConsole%MP1SPM)
call json%add(p,"MP2SPM",data%EquipmentControl%DataDisplayConsole%MP2SPM)
call json%add(p,"RTTorque",data%EquipmentControl%DataDisplayConsole%RTTorque)
call json%add(p,"RTRPM",data%EquipmentControl%DataDisplayConsole%RTRPM)
call json%add(p,"WOP",data%EquipmentControl%DataDisplayConsole%WOP)
call json%add(p,"ROP",data%EquipmentControl%DataDisplayConsole%ROP)
call json%add(p,"MudWeightIn",data%EquipmentControl%DataDisplayConsole%MudWeightIn)
call json%add(p,"MudWeightOut",data%EquipmentControl%DataDisplayConsole%MudWeightOut)
call json%add(p,"Buzzer1",data%EquipmentControl%DataDisplayConsole%Buzzer1)
call json%add(p,"Buzzer2",data%EquipmentControl%DataDisplayConsole%Buzzer2)
call json%add(p,"Buzzer3",data%EquipmentControl%DataDisplayConsole%Buzzer3)
call json%add(p,"Buzzer4",data%EquipmentControl%DataDisplayConsole%Buzzer4)


call json%add(parent,p) call json%add(parent,p)


+ 85
- 946
CSharp/Equipments/ControlPanels/CDrillingConsole.f90
Разлика између датотеке није приказан због своје велике величине
Прегледај датотеку


+ 4
- 4
CSharp/Equipments/ControlPanels/CHook.f90 Прегледај датотеку

@@ -5,16 +5,16 @@ module CHook
public public
contains contains


subroutine CHookToJson(parent)
subroutine HookToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
type(json_value),pointer :: p type(json_value),pointer :: p


! 1. create new node ! 1. create new node
call json%create_object(p,'CHook')
call json%add(p,"HookHeight_S",data%Equipments%ControlPanel%CHook%HookHeight_S)
call json%add(p,"HookHeight",data%Equipments%ControlPanel%CHook%HookHeight)
call json%create_object(p,'Hook')
call json%add(p,"HookHeight_S",data%EquipmentControl%Hook%HookHeight_S)
call json%add(p,"HookHeight",data%EquipmentControl%Hook%HookHeight)


call json%add(parent,p) call json%add(parent,p)
end subroutine end subroutine


+ 0
- 16
CSharp/Equipments/ControlPanels/CHookActions.f90 Прегледај датотеку

@@ -1,16 +0,0 @@
module CHookActions
use CIActionReference
implicit none
public
procedure (ActionReal), pointer :: HookHeightPtr
contains
subroutine SubscribeHookHeight(a)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHookHeight
!DEC$ ATTRIBUTES ALIAS: 'SubscribeHookHeight' :: SubscribeHookHeight
implicit none
procedure (ActionReal) :: a
HookHeightPtr => a
end subroutine
end module CHookActions

+ 20
- 218
CSharp/Equipments/ControlPanels/CStandPipeManifold.f90 Прегледај датотеку

@@ -7,232 +7,34 @@ module CStandPipeManifold
contains contains




subroutine CStandPipeToJson(parent)
subroutine StandPipeManifoldToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
type(json_value),pointer :: p type(json_value),pointer :: p


! 1. create new node ! 1. create new node
call json%create_object(p,'CStandPipe')
call json%add(p,"StandPipeManifoldValve1",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve1)
call json%add(p,"StandPipeManifoldValve2",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve2)
call json%add(p,"StandPipeManifoldValve3",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve3)
call json%add(p,"StandPipeManifoldValve4",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve4)
call json%add(p,"StandPipeManifoldValve5",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve5)
call json%add(p,"StandPipeManifoldValve6",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve6)
call json%add(p,"StandPipeManifoldValve7",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve7)
call json%add(p,"StandPipeManifoldValve8",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve8)
call json%add(p,"StandPipeManifoldValve9",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve9)
call json%add(p,"StandPipeManifoldValve10",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve10)
call json%add(p,"StandPipeManifoldValve11",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve11)
call json%add(p,"StandPipeManifoldValve12",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve12)
call json%add(p,"StandPipeManifoldValve13",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve13)
call json%add(p,"StandPipeManifoldValve14",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve14)
call json%add(p,"StandPipeManifoldValve15",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve15)
call json%add(p,"StandPipeGauge1",data%Equipments%ControlPanel%CStandPipe%StandPipeGauge1)
call json%add(p,"StandPipeGauge2",data%Equipments%ControlPanel%CStandPipe%StandPipeGauge2)
call json%create_object(p,'StandPipeManifold')
call json%add(p,"StandPipeManifoldValve1",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve1)
call json%add(p,"StandPipeManifoldValve2",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve2)
call json%add(p,"StandPipeManifoldValve3",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve3)
call json%add(p,"StandPipeManifoldValve4",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve4)
call json%add(p,"StandPipeManifoldValve5",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve5)
call json%add(p,"StandPipeManifoldValve6",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve6)
call json%add(p,"StandPipeManifoldValve7",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve7)
call json%add(p,"StandPipeManifoldValve8",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve8)
call json%add(p,"StandPipeManifoldValve9",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve9)
call json%add(p,"StandPipeManifoldValve10",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve10)
call json%add(p,"StandPipeManifoldValve11",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve11)
call json%add(p,"StandPipeManifoldValve12",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve12)
call json%add(p,"StandPipeManifoldValve13",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve13)
call json%add(p,"StandPipeManifoldValve14",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve14)
call json%add(p,"StandPipeManifoldValve15",data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve15)
call json%add(p,"StandPipeGauge1",data%EquipmentControl%StandPipeManifold%StandPipeGauge1)
call json%add(p,"StandPipeGauge2",data%EquipmentControl%StandPipeManifold%StandPipeGauge2)


call json%add(parent,p) call json%add(parent,p)
end subroutine end subroutine
! Input routines
subroutine SetStandPipeManifoldValve1(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve1
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve1' :: SetStandPipeManifoldValve1
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve1 = v
call ChangeValve(13, v)
#ifdef deb
print*, 'StandPipeManifoldValve1=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve1
#endif
end subroutine

subroutine SetStandPipeManifoldValve2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve2
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve2' :: SetStandPipeManifoldValve2
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve2 = v
call ChangeValve(14, v)
#ifdef deb
print*, 'StandPipeManifoldValve2=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve2
#endif
end subroutine

subroutine SetStandPipeManifoldValve3(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve3
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve3' :: SetStandPipeManifoldValve3
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve3 = v
call ChangeValve(15, v)
#ifdef deb
print*, 'StandPipeManifoldValve3=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve3
#endif
end subroutine

subroutine SetStandPipeManifoldValve4(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve4
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve4' :: SetStandPipeManifoldValve4
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve4 = v
call ChangeValve(11, v)
#ifdef deb
print*, 'StandPipeManifoldValve4=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve4
#endif
end subroutine

subroutine SetStandPipeManifoldValve5(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve5
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve5' :: SetStandPipeManifoldValve5
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve5 = v
call ChangeValve(12, v)
#ifdef deb
print*, 'StandPipeManifoldValve5=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve5
#endif
end subroutine

subroutine SetStandPipeManifoldValve6(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve6
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve6' :: SetStandPipeManifoldValve6
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve6 = v
call ChangeValve(9, v)
#ifdef deb
print*, 'StandPipeManifoldValve6=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve6
#endif
end subroutine

subroutine SetStandPipeManifoldValve7(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve7
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve7' :: SetStandPipeManifoldValve7
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve7 = v
call ChangeValve(10, v)
#ifdef deb
print*, 'StandPipeManifoldValve7=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve7
#endif
end subroutine

subroutine SetStandPipeManifoldValve8(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve8
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve8' :: SetStandPipeManifoldValve8
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve8 = v
call ChangeValve(6, v)
#ifdef deb
print*, 'StandPipeManifoldValve8=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve8
#endif
end subroutine

subroutine SetStandPipeManifoldValve9(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve9
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve9' :: SetStandPipeManifoldValve9
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve9 = v
call ChangeValve(7, v)
#ifdef deb
print*, 'StandPipeManifoldValve9=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve9
#endif
end subroutine

subroutine SetStandPipeManifoldValve10(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve10
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve10' :: SetStandPipeManifoldValve10
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve10 = v
call ChangeValve(8, v)
#ifdef deb
print*, 'StandPipeManifoldValve10=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve10
#endif
end subroutine

subroutine SetStandPipeManifoldValve11(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve11
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve11' :: SetStandPipeManifoldValve11
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve11 = v
call ChangeValve(1, v)
#ifdef deb
print*, 'StandPipeManifoldValve11=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve11
#endif
end subroutine

subroutine SetStandPipeManifoldValve12(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve12
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve12' :: SetStandPipeManifoldValve12
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve12 = v
call ChangeValve(2, v)
#ifdef deb
print*, 'StandPipeManifoldValve12=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve12
#endif
end subroutine

subroutine SetStandPipeManifoldValve13(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve13
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve13' :: SetStandPipeManifoldValve13
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve13 = v
call ChangeValve(3, v)
#ifdef deb
print*, 'StandPipeManifoldValve13=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve13
#endif
end subroutine

subroutine SetStandPipeManifoldValve14(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve14
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve14' :: SetStandPipeManifoldValve14
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve14 = v
call ChangeValve(4, v)
#ifdef deb
print*, 'StandPipeManifoldValve14=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve14
#endif
end subroutine

subroutine SetStandPipeManifoldValve15(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetStandPipeManifoldValve15
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipeManifoldValve15' :: SetStandPipeManifoldValve15
implicit none
logical, intent(in) :: v
data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve15 = v
call ChangeValve(5, v)
#ifdef deb
print*, 'StandPipeManifoldValve15=', data%EquipmentControl%StandPipeManifold%StandPipeManifoldValve15
#endif
end subroutine

! Output routines
real(8) function GetStandPipeGauge1()
!DEC$ ATTRIBUTES DLLEXPORT :: GetStandPipeGauge1
!DEC$ ATTRIBUTES ALIAS: 'GetStandPipeGauge1' :: GetStandPipeGauge1
implicit none
GetStandPipeGauge1 = data%EquipmentControl%StandPipeManifold%StandPipeGauge1
!GetStandPipeGauge1 = 567.4
end function

real(8) function GetStandPipeGauge2()
!DEC$ ATTRIBUTES DLLEXPORT :: GetStandPipeGauge2
!DEC$ ATTRIBUTES ALIAS: 'GetStandPipeGauge2' :: GetStandPipeGauge2
implicit none
GetStandPipeGauge2 = data%EquipmentControl%StandPipeManifold%StandPipeGauge2
!GetStandPipeGauge2 = 1564.0
end function


end module CStandPipeManifold end module CStandPipeManifold

+ 18
- 245
CSharp/Equipments/ControlPanels/CTopDrivePanel.f90 Прегледај датотеку

@@ -6,7 +6,7 @@ module CTopDrivePanel
public public
contains contains


subroutine CDrivePanelToJson(parent)
subroutine TopDrivePanelToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
@@ -15,253 +15,26 @@ module CTopDrivePanel




! 1. create new node ! 1. create new node
call json%create_object(p,'CDrivePanel')

call json%add(p,"TdsPower_REV",data%Equipments%ControlPanel%CTopDrive%TdsPower_REV)
call json%add(p,"TdsPower_OFF",data%Equipments%ControlPanel%CTopDrive%TdsPower_OFF)
call json%add(p,"TdsPower_FWD",data%Equipments%ControlPanel%CTopDrive%TdsPower_FWD)
call json%add(p,"TdsMu_TORQ",data%Equipments%ControlPanel%CTopDrive%TdsMu_TORQ)
call json%add(p,"TdsMu_SPINE",data%Equipments%ControlPanel%CTopDrive%TdsMu_SPINE)
call json%add(p,"TdsMu_DRILL",data%Equipments%ControlPanel%CTopDrive%TdsMu_DRILL)
call json%add(p,"TdsLinkTilt_TILT",data%Equipments%ControlPanel%CTopDrive%TdsLinkTilt_TILT)
call json%add(p,"TdsLinkTilt_OFF",data%Equipments%ControlPanel%CTopDrive%TdsLinkTilt_OFF)
call json%add(p,"TdsLinkTilt_DRILL",data%Equipments%ControlPanel%CTopDrive%TdsLinkTilt_DRILL)
call json%add(p,"LED_OFF",data%Equipments%ControlPanel%CTopDrive%LED_OFF)
call json%add(p,"LED_ON",data%Equipments%ControlPanel%CTopDrive%LED_ON)
call json%add(p,"LED_BLINK",data%Equipments%ControlPanel%CTopDrive%LED_BLINK)


do i=1,data%Equipments%ControlPanel%CTopDrive%Count
call json%create_object(pform,'')
call json%create_object(p,'TopDrivePanel')
call json%add(pform,"TopDriveTdsPowerState",data%Equipments%ControlPanel%CTopDrive%TopDriveTdsPowerState)
call json%add(pform,"TopDriveTorqueWrench",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueWrench)
call json%add(pform,"TopDriveDrillTorqueState",data%Equipments%ControlPanel%CTopDrive%TopDriveDrillTorqueState)
call json%add(pform,"TopDriveLinkTiltState",data%Equipments%ControlPanel%CTopDrive%TopDriveLinkTiltState)
call json%add(pform,"TopDriveIbop",data%Equipments%ControlPanel%CTopDrive%TopDriveIbop)
call json%add(pform,"TopDriveTorqueLimitKnob",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueLimitKnob)
call json%add(pform,"RpmKnob",data%Equipments%ControlPanel%CTopDrive%RpmKnob)
call json%add(pform,"TopDriveOperationFaultLed",data%Equipments%ControlPanel%CTopDrive%TopDriveOperationFaultLed)
call json%add(pform,"TopDriveTdsPowerLed",data%Equipments%ControlPanel%CTopDrive%TopDriveTdsPowerLed)
call json%add(pform,"TopDriveTorqueWrenchLed",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueWrenchLed)
call json%add(pform,"TopDriveLinkTiltLed",data%Equipments%ControlPanel%CTopDrive%TopDriveLinkTiltLed)
call json%add(pform,"TopDriveIbopLed",data%Equipments%ControlPanel%CTopDrive%TopDriveIbopLed)
call json%add(pform,"TopDriveTorqueLimitGauge",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueLimitGauge)
call json%add(pform,"TopDriveTorqueGauge",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueGauge)
call json%add(pform,"TopDriveRpmGauge",data%Equipments%ControlPanel%CTopDrive%TopDriveRpmGauge)
call json%add(pform,"TopDriveTdsPowerState",data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState)
call json%add(pform,"TopDriveTorqueWrench",data%EquipmentControl%TopDrivePanel%TopDriveTorqueWrench)
call json%add(pform,"TopDriveDrillTorqueState",data%EquipmentControl%TopDrivePanel%TopDriveDrillTorqueState)
call json%add(pform,"TopDriveLinkTiltState",data%EquipmentControl%TopDrivePanel%TopDriveLinkTiltState)
call json%add(pform,"TopDriveIbop",data%EquipmentControl%TopDrivePanel%TopDriveIbop)
call json%add(pform,"TopDriveTorqueLimitKnob",data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitKnob)
call json%add(pform,"RpmKnob",data%EquipmentControl%TopDrivePanel%RpmKnob)
call json%add(pform,"TopDriveOperationFaultLed",data%EquipmentControl%TopDrivePanel%TopDriveOperationFaultLed)
call json%add(pform,"TopDriveTdsPowerLed",data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerLed)
call json%add(pform,"TopDriveTorqueWrenchLed",data%EquipmentControl%TopDrivePanel%TopDriveTorqueWrenchLed)
call json%add(pform,"TopDriveLinkTiltLed",data%EquipmentControl%TopDrivePanel%TopDriveLinkTiltLed)
call json%add(pform,"TopDriveIbopLed",data%EquipmentControl%TopDrivePanel%TopDriveIbopLed)
call json%add(pform,"TopDriveTorqueLimitGauge",data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitGauge)
call json%add(pform,"TopDriveTorqueGauge",data%EquipmentControl%TopDrivePanel%TopDriveTorqueGauge)
call json%add(pform,"TopDriveRpmGauge",data%EquipmentControl%TopDrivePanel%TopDriveRpmGauge)


call json%add(p,pform)
end do


call json%add(parent,p) call json%add(parent,p)
end subroutine end subroutine
! Input routines
subroutine SetTopDriveTdsPowerState(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveTdsPowerState
!DEC$ ATTRIBUTES ALIAS: 'SetTopDriveTdsPowerState' :: SetTopDriveTdsPowerState
implicit none
integer, intent(in) :: v
data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState = v
#ifdef deb
call Log_3( 'TopDriveTdsPowerState=', data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState)
#endif
end subroutine

subroutine SetTopDriveTorqueWrench(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveTorqueWrench
!DEC$ ATTRIBUTES ALIAS: 'SetTopDriveTorqueWrench' :: SetTopDriveTorqueWrench
implicit none
logical, intent(in) :: v
data%EquipmentControl%TopDrivePanel%TopDriveTorqueWrench = v
#ifdef deb
call Log_3( 'TopDriveTorqueWrench=', data%EquipmentControl%TopDrivePanel%TopDriveTorqueWrench)
#endif
end subroutine

subroutine SetTopDriveDrillTorqueState(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveDrillTorqueState
!DEC$ ATTRIBUTES ALIAS: 'SetTopDriveDrillTorqueState' :: SetTopDriveDrillTorqueState
implicit none
integer, intent(in) :: v
data%EquipmentControl%TopDrivePanel%TopDriveDrillTorqueState = v
#ifdef deb
call Log_3( 'TopDriveDrillTorqueState=', data%EquipmentControl%TopDrivePanel%TopDriveDrillTorqueState)
#endif
end subroutine

subroutine SetTopDriveLinkTiltState(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveLinkTiltState
!DEC$ ATTRIBUTES ALIAS: 'SetTopDriveLinkTiltState' :: SetTopDriveLinkTiltState
implicit none
integer, intent(in) :: v
data%EquipmentControl%TopDrivePanel%TopDriveLinkTiltState = v
#ifdef deb
call Log_3( 'TopDriveLinkTiltState=', data%EquipmentControl%TopDrivePanel%TopDriveLinkTiltState)
#endif
end subroutine

subroutine SetTopDriveIbop(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveIbop
!DEC$ ATTRIBUTES ALIAS: 'SetTopDriveIbop' :: SetTopDriveIbop
implicit none
logical, intent(in) :: v
data%EquipmentControl%TopDrivePanel%TopDriveIbop = v
#ifdef deb
call Log_3( 'TopDriveIbop=', data%EquipmentControl%TopDrivePanel%TopDriveIbop)
#endif
end subroutine
subroutine SetTopDriveTorqueLimitKnob(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveTorqueLimitKnob
!DEC$ ATTRIBUTES ALIAS: 'SetTopDriveTorqueLimitKnob' :: SetTopDriveTorqueLimitKnob
! use CSimulationVariables, only: IsPortable
use CDrillingConsoleVariables
use SimulationVariables
use SimulationVariables!, only: data%EquipmentControl%DrillingConsole%RTSwitch, data%EquipmentControl%DrillingConsole%RTTorqueLimitKnob
use CWarnings, only: Activate_TopdriveRotaryTableConfilict
use CScaleRange
implicit none
real, intent(in) :: v
if (IsPortable) then
if(data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState /= 0 .and. data%EquipmentControl%DrillingConsole%RTSwitch /= 0) call Activate_TopdriveRotaryTableConfilict()
if(data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState /= 0 .and. data%EquipmentControl%DrillingConsole%RTSwitch == 0) then
data%EquipmentControl%DrillingConsole%RTTorqueLimitKnob = 0
data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitKnob = v
#ifdef deb
call Log_3( 'RTTorqueLimitKnob=', data%EquipmentControl%DrillingConsole%RTTorqueLimitKnob )
call Log_3( 'TopDriveTorqueLimitKnob=', data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitKnob )
#endif
endif
if(data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState == 0 .and. data%EquipmentControl%DrillingConsole%RTSwitch /= 0) then
data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitKnob = 0
data%EquipmentControl%DrillingConsole%RTTorqueLimitKnob = real(ScaleRange(v, 0.0, 10.0, 0.0, 6000.0), 8)
#ifdef deb
call Log_3( 'RTTorqueLimitKnob=', data%EquipmentControl%DrillingConsole%RTTorqueLimitKnob )
call Log_3( 'TopDriveTorqueLimitKnob=', data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitKnob )
#endif
endif
else
data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitKnob = v
#ifdef deb
call Log_3( 'TopDriveTorqueLimitKnob=', data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitKnob)
#endif
endif

end subroutine
subroutine SetRpmKnob(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetRpmKnob
!DEC$ ATTRIBUTES ALIAS: 'SetRpmKnob' :: SetRpmKnob
! use CSimulationVariables, only: IsPortable
use CDrillingConsoleVariables
use SimulationVariables
use SimulationVariables!, only: data%EquipmentControl%DrillingConsole%RTSwitch, data%EquipmentControl%DrillingConsole%RTThrottle
use CWarnings, only: Activate_TopdriveRotaryTableConfilict
use CScaleRange
implicit none
real, intent(in) :: v
if (IsPortable) then
if(data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState /= 0 .and. data%EquipmentControl%DrillingConsole%RTSwitch /= 0) call Activate_TopdriveRotaryTableConfilict()
if(data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState /= 0 .and. data%EquipmentControl%DrillingConsole%RTSwitch == 0) then
data%EquipmentControl%DrillingConsole%RTThrottle = 0
data%EquipmentControl%TopDrivePanel%RpmKnob = v
#ifdef deb
call Log_3( 'RTThrottle=', data%EquipmentControl%DrillingConsole%RTThrottle )
call Log_3( 'RpmKnob=', data%EquipmentControl%TopDrivePanel%RpmKnob )
#endif
endif
if(data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerState == 0 .and. data%EquipmentControl%DrillingConsole%RTSwitch /= 0) then
data%EquipmentControl%TopDrivePanel%RpmKnob = 0
data%EquipmentControl%DrillingConsole%RTThrottle = real(ScaleRange(v, 0.0, 965.0, 0.0, 250.0), 8)
#ifdef deb
call Log_3( 'RpmKnob=', data%EquipmentControl%TopDrivePanel%RpmKnob )
call Log_3( 'RTThrottle=', data%EquipmentControl%DrillingConsole%RTThrottle )
#endif
endif
else
data%EquipmentControl%TopDrivePanel%RpmKnob = v
endif
if (IsPortable) then
!
else
data%EquipmentControl%TopDrivePanel%RpmKnob = v
#ifdef deb
call Log_3( 'RpmKnob=', data%EquipmentControl%TopDrivePanel%RpmKnob )
#endif
endif

end subroutine
! Output routines
integer function GetTopDriveOperationFaultLed()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveOperationFaultLed
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveOperationFaultLed' :: GetTopDriveOperationFaultLed
implicit none
GetTopDriveOperationFaultLed = data%EquipmentControl%TopDrivePanel%TopDriveOperationFaultLed
!GetTopDriveOperationFaultLed = 1
end function

integer function GetTopDriveTdsPowerLed()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveTdsPowerLed
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveTdsPowerLed' :: GetTopDriveTdsPowerLed
implicit none
GetTopDriveTdsPowerLed = data%EquipmentControl%TopDrivePanel%TopDriveTdsPowerLed
!GetTopDriveTdsPowerLed = 1
end function

integer function GetTopDriveTorqueWrenchLed()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveTorqueWrenchLed
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveTorqueWrenchLed' :: GetTopDriveTorqueWrenchLed
implicit none
GetTopDriveTorqueWrenchLed = data%EquipmentControl%TopDrivePanel%TopDriveTorqueWrenchLed
!GetTopDriveTorqueWrenchLed = 1
end function

integer function GetTopDriveLinkTiltLed()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveLinkTiltLed
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveLinkTiltLed' :: GetTopDriveLinkTiltLed
implicit none
GetTopDriveLinkTiltLed = data%EquipmentControl%TopDrivePanel%TopDriveLinkTiltLed
!GetTopDriveLinkTiltLed = 1
end function

integer function GetTopDriveIbopLed()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveIbopLed
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveIbopLed' :: GetTopDriveIbopLed
implicit none
GetTopDriveIbopLed = data%EquipmentControl%TopDrivePanel%TopDriveIbopLed
!GetTopDriveIbopLed = 1
end function
real function GetTopDriveTorqueGauge()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveTorqueGauge
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveTorqueGauge' :: GetTopDriveTorqueGauge
implicit none
GetTopDriveTorqueGauge = data%EquipmentControl%TopDrivePanel%TopDriveTorqueGauge
!GetTopDriveTorqueGauge = 340
end function
real function GetTopDriveTorqueLimitGauge()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveTorqueLimitGauge
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveTorqueLimitGauge' :: GetTopDriveTorqueLimitGauge
implicit none
GetTopDriveTorqueLimitGauge = data%EquipmentControl%TopDrivePanel%TopDriveTorqueLimitGauge
!GetTopDriveTorqueLimitGauge = 442
end function
real function GetTopDriveRpmGauge()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopDriveRpmGauge
!DEC$ ATTRIBUTES ALIAS: 'GetTopDriveRpmGauge' :: GetTopDriveRpmGauge
implicit none
GetTopDriveRpmGauge = data%EquipmentControl%TopDrivePanel%TopDriveRpmGauge
!GetTopDriveRpmGauge = 67
end function

end module CTopDrivePanel
end module CTopDrivePanel

+ 37
- 0
CSharp/Equipments/DrillWatch/DrillWatch.f90 Прегледај датотеку

@@ -0,0 +1,37 @@
module DrillingWatchModule
use SimulationVariables
contains

subroutine DrillingWatchToJson(parent)
type(json_value),pointer :: parent
type(json_core) :: json
type(json_value),pointer :: p
integer :: i

! 1. create new node
call json%create_object(p,'DrillingWatch')

call json%add(p,"Depth",data%EquipmentControl%DrillingWatch%Depth)
call json%add(p,"BitPosition",data%EquipmentControl%DrillingWatch%BitPosition)
call json%add(p,"HookLoad",data%EquipmentControl%DrillingWatch%HookLoad)
call json%add(p,"WeightOnBit",data%EquipmentControl%DrillingWatch%WeightOnBit)
call json%add(p,"RPM",data%EquipmentControl%DrillingWatch%RPM)
call json%add(p,"ROP",data%EquipmentControl%DrillingWatch%ROP)
call json%add(p,"Torque",data%EquipmentControl%DrillingWatch%Torque)
call json%add(p,"PumpPressure",data%EquipmentControl%DrillingWatch%PumpPressure)
call json%add(p,"SPM1",data%EquipmentControl%DrillingWatch%SPM1)
call json%add(p,"SPM2",data%EquipmentControl%DrillingWatch%SPM2)
call json%add(p,"CasingPressure",data%EquipmentControl%DrillingWatch%CasingPressure)
call json%add(p,"PercentFlow",data%EquipmentControl%DrillingWatch%PercentFlow)
call json%add(p,"PitGainLose",data%EquipmentControl%DrillingWatch%PitGainLose)
call json%add(p,"PitVolume",data%EquipmentControl%DrillingWatch%PitVolume)
call json%add(p,"KillMudVolume",data%EquipmentControl%DrillingWatch%KillMudVolume)
call json%add(p,"TripTankVolume",data%EquipmentControl%DrillingWatch%TripTankVolume)
call json%add(p,"MudWeightIn",data%EquipmentControl%DrillingWatch%MudWeightIn)
call json%add(p,"FillVolume",data%EquipmentControl%DrillingWatch%FillVolume)
call json%add(p,"MudWeightOut",data%EquipmentControl%DrillingWatch%MudWeightOut)

call json%add(parent,p)
end subroutine

end module DrillingWatchModule

+ 21
- 48
CSharp/Equipments/Tanks/CTanks.f90 Прегледај датотеку

@@ -1,24 +1,3 @@
<<<<<<< HEAD
module CTanks
use SimulationVariables
use CManifolds
implicit none
public
contains
subroutine Set_ManualPumpPower(v)
use CManifolds, only:ChangeValve
implicit none
logical, intent(in) :: v
data%EquipmentControl%Tank%ManualPumpPower = v
call ChangeValve(43, v)
#ifdef deb
print*, 'ManualPumpPower=', data%EquipmentControl%Tank%ManualPumpPower
#endif
end subroutine
=======


module CTanks module CTanks
use SimulationVariables use SimulationVariables
@@ -28,38 +7,33 @@
contains contains




subroutine CTankToJson(parent)
subroutine TankToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent
type(json_core) :: json type(json_core) :: json
type(json_value),pointer :: p,pform type(json_value),pointer :: p,pform
integer :: i integer :: i


call json%create_array(p,'CTank')

do i=1,data%Equipments%Tanks%CTank%Count
call json%create_object(pform,'')
call json%add(pform,"WaterRate",data%Equipments%Tanks%CTanks%WaterRate)
call json%add(pform,"CementTankVolume",data%Equipments%Tanks%CTanks%CementTankVolume)
call json%add(pform,"CementTankDensity",data%Equipments%Tanks%CTanks%CementTankDensity)
call json%add(pform,"TripTankVolume",data%Equipments%Tanks%CTanks%TripTankVolume)
call json%add(pform,"TripTankDensity",data%Equipments%Tanks%CTanks%TripTankDensity)
call json%add(pform,"ManualPumpPower",data%Equipments%Tanks%CTanks%ManualPumpPower)
call json%add(pform,"Valve1",data%Equipments%Tanks%CTanks%Valve1)
call json%add(pform,"Valve2",data%Equipments%Tanks%CTanks%Valve2)
call json%add(pform,"Valve3",data%Equipments%Tanks%CTanks%Valve3)
call json%add(pform,"Valve4",data%Equipments%Tanks%CTanks%Valve4)
call json%add(pform,"Valve5",data%Equipments%Tanks%CTanks%Valve5)
call json%add(pform,"Valve6",data%Equipments%Tanks%CTanks%Valve6)
call json%add(pform,"Valve7",data%Equipments%Tanks%CTanks%Valve7)
call json%add(pform,"Valve8",data%Equipments%Tanks%CTanks%Valve8)
call json%add(pform,"Valve9",data%Equipments%Tanks%CTanks%Valve9)
call json%add(pform,"Valve10",data%Equipments%Tanks%CTanks%Valve10)
call json%add(pform,"Valve11",data%Equipments%Tanks%CTanks%Valve11)

call json%add(p,pform)
end do

call json%create_array(p,'Tank')

call json%create_object(pform,'')
call json%add(pform,"WaterRate",data%EquipmentControl%Tank%WaterRate)
call json%add(pform,"CementTankVolume",data%EquipmentControl%Tank%CementTankVolume)
call json%add(pform,"CementTankDensity",data%EquipmentControl%Tank%CementTankDensity)
call json%add(pform,"TripTankVolume",data%EquipmentControl%Tank%TripTankVolume)
call json%add(pform,"TripTankDensity",data%EquipmentControl%Tank%TripTankDensity)
call json%add(pform,"ManualPumpPower",data%EquipmentControl%Tank%ManualPumpPower)
call json%add(pform,"Valve1",data%EquipmentControl%Tank%Valve1)
call json%add(pform,"Valve2",data%EquipmentControl%Tank%Valve2)
call json%add(pform,"Valve3",data%EquipmentControl%Tank%Valve3)
call json%add(pform,"Valve4",data%EquipmentControl%Tank%Valve4)
call json%add(pform,"Valve5",data%EquipmentControl%Tank%Valve5)
call json%add(pform,"Valve6",data%EquipmentControl%Tank%Valve6)
call json%add(pform,"Valve7",data%EquipmentControl%Tank%Valve7)
call json%add(pform,"Valve8",data%EquipmentControl%Tank%Valve8)
call json%add(pform,"Valve9",data%EquipmentControl%Tank%Valve9)
call json%add(pform,"Valve10",data%EquipmentControl%Tank%Valve10)
call json%add(pform,"Valve11",data%EquipmentControl%Tank%Valve11)


call json%add(parent,p) call json%add(parent,p)
end subroutine end subroutine
@@ -77,5 +51,4 @@
end subroutine end subroutine


>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
end module CTanks end module CTanks

+ 7
- 0
Makefile Прегледај датотеку

@@ -163,6 +163,13 @@ SRCS_F =\
CSharp/Problems/CMudTreatmentProblemsVariables.f90 \ CSharp/Problems/CMudTreatmentProblemsVariables.f90 \
CSharp/Problems/CBopProblemsVariables.f90 \ CSharp/Problems/CBopProblemsVariables.f90 \
Simulation/SimulationVariables.f90 \ Simulation/SimulationVariables.f90 \
\
CSharp/Equipments/ControlPanels/CChokeControlPanel.f90 \
CSharp/Equipments/ControlPanels/CDrillingConsole.f90 \
CSharp/Equipments/ControlPanels/CStandPipeManifold.f90 \
CSharp/Equipments/ControlPanels/CTopDrivePanel.f90 \
CSharp/Equipments/DrillWatch/DrillWatch.f90 \
\
CSharp/Problems/CMudTreatmentProblems.f90 \ CSharp/Problems/CMudTreatmentProblems.f90 \
CSharp/Problems/CChokeProblems.f90 \ CSharp/Problems/CChokeProblems.f90 \
CSharp/Equipments/ControlPanels/CHook.f90 \ CSharp/Equipments/ControlPanels/CHook.f90 \


+ 1
- 1
Simulation/SimulationVariables.f90 Прегледај датотеку

@@ -98,7 +98,7 @@ module SimulationVariables
Type(HookType)::Hook Type(HookType)::Hook
type(StandPipeManifoldType)::StandPipeManifold type(StandPipeManifoldType)::StandPipeManifold
Type(TopDrivePanelType)::TopDrivePanel Type(TopDrivePanelType)::TopDrivePanel
! Drill Watch
Type(DrillingWatchType)::DrillingWatch Type(DrillingWatchType)::DrillingWatch
Type(TankType)::Tank Type(TankType)::Tank
end type EquipmentControlType end type EquipmentControlType



+ 40
- 8
Simulator.f90 Прегледај датотеку

@@ -53,6 +53,17 @@ module Simulator
use PermissionsModule use PermissionsModule
use UnitySignalsModule use UnitySignalsModule


use CBopControlPanel
use CChokeControlPanel
use CChokeManifold
use CDataDisplayConsole
use CDrillingConsole
use CHook
use CStandPipeManifold
use CTopDrivePanel
use DrillingWatchModule
use CTanks

use :: json_module, rk => json_rk use :: json_module, rk => json_rk
implicit none implicit none
@@ -92,6 +103,9 @@ module Simulator
call initConnection() call initConnection()
call write_variables() call write_variables()
call read_variables() call read_variables()
call jsoncore%print(jsonvalue,'test.json')
call jsoncore%destroy(jsonvalue)
! print *,"s2=",redisContent ! print *,"s2=",redisContent
! call deallocateData() ! call deallocateData()
! print *,"redisContent Deallocated!" ! print *,"redisContent Deallocated!"
@@ -198,19 +212,12 @@ module Simulator
call ConfigurationToJson(jsonvalue) call ConfigurationToJson(jsonvalue)
call WarningsToJson(jsonvalue) call WarningsToJson(jsonvalue)
call ProblemsToJson(jsonvalue) call ProblemsToJson(jsonvalue)
call EquipmentsToJson(jsonvalue)


print *,"write starts" print *,"write starts"
<<<<<<< HEAD
call jsoncore%serialize(jsonvalue,redisContent) call jsoncore%serialize(jsonvalue,redisContent)
! s = "Test redis write!" ! s = "Test redis write!"
call setData(redisContent) call setData(redisContent)
=======
call json%create_object(p,'') !create the root
call ConfigurationToJson(p)
call json%print(p,'test.json') !write it to a file
call json%destroy(p) !cleanup print *,"written"
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
print *,"write ends" print *,"write ends"
end subroutine end subroutine


@@ -268,6 +275,31 @@ module Simulator
! call OperationScenarios_Init() ! call OperationScenarios_Init()
end subroutine init_modules end subroutine init_modules


subroutine EquipmentsToJson(parent)

type(json_value),pointer :: parent
type(json_core) :: json
type(json_value),pointer :: p

! 1. create new node
call json%create_object(p,'Equipments')
! 2. add member of data type to new node
call BopControlPanelToJson(p)
call ChokeControlPanelToJson(p)
call ChokeManifoldToJson(p)
call DataDisplayConsoleToJson(p)
call DrillingConsoleToJson(p)
call HookToJson(p)
call StandPipeManifoldToJson(p)
call TopDrivePanelToJson(p)
call DrillingWatchToJson(p)
call TankToJson(p)

! 3. add new node to parent
call json%add(parent,p)
end subroutine

subroutine ConfigurationToJson(parent) subroutine ConfigurationToJson(parent)


type(json_value),pointer :: parent type(json_value),pointer :: parent


+ 19
- 21
Text1.txt Прегледај датотеку

@@ -1,21 +1,19 @@
<<<<<<< HEAD
integer :: ElevatorConnection
integer :: StringUpdate
integer :: KellyConnection
=======
integer :: TopDriveTdsPowerState
logical :: TopDriveTorqueWrench
integer :: TopDriveDrillTorqueState
integer :: TopDriveLinkTiltState
logical :: TopDriveIbop
real :: TopDriveTorqueLimitKnob
real :: RpmKnob
integer :: TopDriveOperationFaultLed
integer :: TopDriveTdsPowerLed
integer :: TopDriveTorqueWrenchLed
integer :: TopDriveLinkTiltLed
integer :: TopDriveIbopLed
real :: TopDriveTorqueLimitGauge
real :: TopDriveTorqueGauge
real :: TopDriveRpmGauge
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
real(8) :: Depth
real(8) :: BitPosition
real(8) :: HookLoad
real(8) :: WeightOnBit
real(8) :: RPM
real(8) :: ROP
real(8) :: Torque
real(8) :: PumpPressure
real(8) :: SPM1
real(8) :: SPM2
real(8) :: CasingPressure
real(8) :: PercentFlow
real(8) :: PitGainLose
real(8) :: PitVolume
real(8) :: KillMudVolume
real(8) :: TripTankVolume
real(8) :: MudWeightIn
real(8) :: FillVolume
real(8) :: MudWeightOut

+ 38
- 146
helper.ipynb Прегледај датотеку

@@ -1,73 +1,22 @@
{ {
"cells": [ "cells": [
{ {
<<<<<<< HEAD
"attachments": {}, "attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
=======
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[' real(8) :: AnnularRegulatorSetControl\\n',\n",
" ' real(8) :: AirMasterValve\\n',\n",
" ' real(8) :: ByePassValve\\n',\n",
" ' real(8) :: AnnularValve\\n',\n",
" ' real(8) :: UpperRamsValve\\n',\n",
" ' real(8) :: MiddleRamsValve\\n',\n",
" ' real(8) :: KillLineValve\\n',\n",
" ' real(8) :: ChokeLineValve\\n',\n",
" ' real(8) :: LowerRamsValve\\n',\n",
" ' real(8) :: ManifoldPressureGauge\\n',\n",
" ' real(8) :: AirSupplyPressureGauge\\n',\n",
" ' real(8) :: AccumulatorPressureGauge\\n',\n",
" ' real(8) :: AnnularPressureGauge\\n',\n",
" ' integer :: AnnularOpenLED\\n',\n",
" ' integer :: AnnularCloseLED\\n',\n",
" ' integer :: UpperRamsOpenLED\\n',\n",
" ' integer :: UpperRamsCloseLED\\n',\n",
" ' integer :: MiddleRamsOpenLED\\n',\n",
" ' integer :: MiddleRamsCloseLED\\n',\n",
" ' integer :: KillLineOpenLED\\n',\n",
" ' integer :: KillLineCloseLED\\n',\n",
" ' integer :: ChokeLineOpenLED\\n',\n",
" ' integer :: ChokeLineCloseLED\\n',\n",
" ' integer :: LowerRamsOpenLED\\n',\n",
" ' integer :: LowerRamsCloseLED\\n',\n",
" ' real(8) :: AnnularStatus\\n',\n",
" ' real(8) :: UpperRamsStatus\\n',\n",
" ' real(8) :: MiddleRamsStatus\\n',\n",
" ' real(8) :: LowerRamsStatus']"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
"source": [ "source": [
"# Make makefile" "# Make makefile"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
<<<<<<< HEAD
"execution_count": 72, "execution_count": 72,
=======
"execution_count": 5,
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
<<<<<<< HEAD
"\tCSharp/OperationScenarios/Common/COperationScenariosVariables.f90 /\n", "\tCSharp/OperationScenarios/Common/COperationScenariosVariables.f90 /\n",
"\tTorqueDrag/TD_Modules/TD_WellGeometry.f90 /\n", "\tTorqueDrag/TD_Modules/TD_WellGeometry.f90 /\n",
"\tTorqueDrag/TD_Modules/TD_WellElements.f90 /\n", "\tTorqueDrag/TD_Modules/TD_WellElements.f90 /\n",
@@ -373,28 +322,10 @@
"\tSimulationCore2.f90 /\n", "\tSimulationCore2.f90 /\n",
"\tEquipments/MudSystem/Plot_Final_Mud_Elements.f90 /\n", "\tEquipments/MudSystem/Plot_Final_Mud_Elements.f90 /\n",
"\tFluidFlow/Fluid_Flow_Solver.f90 /\n" "\tFluidFlow/Fluid_Flow_Solver.f90 /\n"
=======
"call json%add(p,\"TopDriveTdsPowerState\",data%Equipments%ControlPanel%CTopDrive%TopDriveTdsPowerState)\n",
"call json%add(p,\"TopDriveTorqueWrench\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueWrench)\n",
"call json%add(p,\"TopDriveDrillTorqueState\",data%Equipments%ControlPanel%CTopDrive%TopDriveDrillTorqueState)\n",
"call json%add(p,\"TopDriveLinkTiltState\",data%Equipments%ControlPanel%CTopDrive%TopDriveLinkTiltState)\n",
"call json%add(p,\"TopDriveIbop\",data%Equipments%ControlPanel%CTopDrive%TopDriveIbop)\n",
"call json%add(p,\"TopDriveTorqueLimitKnob\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueLimitKnob)\n",
"call json%add(p,\"RpmKnob\",data%Equipments%ControlPanel%CTopDrive%RpmKnob)\n",
"call json%add(p,\"TopDriveOperationFaultLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveOperationFaultLed)\n",
"call json%add(p,\"TopDriveTdsPowerLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveTdsPowerLed)\n",
"call json%add(p,\"TopDriveTorqueWrenchLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueWrenchLed)\n",
"call json%add(p,\"TopDriveLinkTiltLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveLinkTiltLed)\n",
"call json%add(p,\"TopDriveIbopLed\",data%Equipments%ControlPanel%CTopDrive%TopDriveIbopLed)\n",
"call json%add(p,\"TopDriveTorqueLimitGauge\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueLimitGauge)\n",
"call json%add(p,\"TopDriveTorqueGauge\",data%Equipments%ControlPanel%CTopDrive%TopDriveTorqueGauge)\n",
"call json%add(p,\"TopDriveRpmGauge\",data%Equipments%ControlPanel%CTopDrive%TopDriveRpmGauge)\n"
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
] ]
} }
], ],
"source": [ "source": [
<<<<<<< HEAD
"import re\n", "import re\n",
"current_dir = 'C:\\\\Projects\\\\VSIM\\\\SimulationCore2\\\\'\n", "current_dir = 'C:\\\\Projects\\\\VSIM\\\\SimulationCore2\\\\'\n",
"target_dir = 'x64\\\\Debug\\\\'\n", "target_dir = 'x64\\\\Debug\\\\'\n",
@@ -973,25 +904,38 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 8,
"execution_count": 3,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"{\"HoleType\":0,\n",
"\"Angle\":0,\n",
"\"Length\":0,\n",
"\"FinalAngle\":0,\n",
"\"TotalLength\":0,\n",
"\"MeasuredDepth\":0,\n",
"\"TotalVerticalDepth\":0,\n",
"{\"Depth\":0,\n",
"\"BitPosition\":0,\n",
"\"HookLoad\":0,\n",
"\"WeightOnBit\":0,\n",
"\"RPM\":0,\n",
"\"ROP\":0,\n",
"\"Torque\":0,\n",
"\"PumpPressure\":0,\n",
"\"SPM1\":0,\n",
"\"SPM2\":0,\n",
"\"CasingPressure\":0,\n",
"\"PercentFlow\":0,\n",
"\"PitGainLose\":0,\n",
"\"PitVolume\":0,\n",
"\"KillMudVolume\":0,\n",
"\"TripTankVolume\":0,\n",
"\"MudWeightIn\":0,\n",
"\"FillVolume\":0,\n",
"\"MudWeightOut\":0,\n",
"}\n" "}\n"
] ]
} }
], ],
"source": [ "source": [
"#Artifical JSon\n",
"input = open(\"Text1.txt\")\n", "input = open(\"Text1.txt\")\n",
"output = \"{\"\n", "output = \"{\"\n",
"lines = input.readlines()\n", "lines = input.readlines()\n",
@@ -1020,10 +964,7 @@
} }
], ],
"source": [ "source": [
"precode = \"\"\"call ProblemToJson(p,\"\",data%State%OperationScenarios%\"\"\"\n",
=======
"precode = \"\"\"call json%add(pform,\"\",data%Equipments%ControlPanel%CTopDrive%\"\"\"\n",
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
"precode = \"\"\"call json%add(pform,\"TopDriveTdsPowerState\",data%EquipmentControl%DrillingWatch%\"\"\"\n",
"input = open(\"Text1.txt\")\n", "input = open(\"Text1.txt\")\n",
"lines = input.readlines()\n", "lines = input.readlines()\n",
"for line in lines:\n", "for line in lines:\n",
@@ -1037,72 +978,24 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
<<<<<<< HEAD
"execution_count": 20,
"execution_count": 2,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"call HoistingToJson(p)\n",
"call OperationScenarioToJson(p)\n",
"call notificationsToJson(p)\n",
"call permissionsToJson(p)\n",
"call unitySignalsToJson(p)\n",
"call StudentStationToJson(p)\n",
"call BopStackInputToJson(p)\n",
"call BopStackAccToJson(p)\n",
"call RamLineToJson(p)\n",
"call AnnularComputationalToJson(p)\n",
"call AnnularToJson(p)\n",
"call PipeRam1ToJson(p)\n",
"call ShearRamToJson(p)\n",
"call PipeRam2ToJson(p)\n",
"call ChokeLineToJson(p)\n",
"call KillLineToJson(p)\n",
"call PumpsToJson(p)\n",
"call RAMToJson(p)\n",
"call RAMSToJson(p)\n",
"call ChokeToJson(p)\n",
"call AirDrivenPumpToJson(p)\n",
"call AirPumpLineToJson(p)\n",
"call CHOOKEToJson(p)\n",
"call DrawworksToJson(p)\n",
"call MudSystemToJson(p)\n",
"call MUDToJson(p)\n",
"call MPumpsToJson(p)\n",
"call PUMPToJson(p)\n",
"call RTableToJson(p)\n",
"call TDSToJson(p)\n",
"call GasType(3) ! 1 = methane , 2 = Hydrogen sulfide , 3 = Carbon dioxidToJson(p)\n",
"call PressureDisplayToJson(p)\n",
"call FricPressDropToJson(p)\n",
"call ROP_SpecToJson(p)\n",
"call ROP_BitToJson(p)\n",
"call TDGeoToJson(p)\n",
"call F_String(:)ToJson(p)\n",
"call F_CountsToJson(p)\n",
"call F_Interval(:)ToJson(p)\n",
"call OD_Annulus(4)ToJson(p)\n",
"call TD_DrillStemToJson(p)\n",
"call TD_DrillStemsToJson(p)\n",
"call TD_StringToJson(p)\n",
"call TD_CountToJson(p)\n",
"call G_StringElementToJson(p)\n",
"call TD_VolToJson(p)\n",
"call TD_GeneralToJson(p)\n",
"call TD_BOPToJson(p)\n",
"call TD_BOPElement(4)ToJson(p)\n",
"call TD_StConnToJson(p)\n",
"call TD_LoadToJson(p)\n",
"call TD_WellElToJson(p)\n",
"call TD_CasingToJson(p)\n",
"call TD_LinerToJson(p)\n",
"call TD_OpenHoleToJson(p)\n",
"call TD_ROPHoleToJson(p)\n",
"call TD_WellGeneralToJson(p)\n",
"call TD_WellGeo(:)ToJson(p)\n"
"call BopControlPanelToJson(p)\n",
"call ChokeControlPanelToJson(p)\n",
"call ChokeManifoldToJson(p)\n",
"call DataDisplayConsoleToJson(p)\n",
"call DrillingConsoleToJson(p)\n",
"call HookToJson(p)\n",
"call StandPipeManifoldToJson(p)\n",
"call TopDrivePanelToJson(p)\n",
"call ! Drill WatchToJson(p)\n",
"call DrillingWatchToJson(p)\n",
"call TankToJson(p)\n"
] ]
} }
], ],
@@ -1123,9 +1016,6 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 3, "execution_count": 3,
=======
"execution_count": 2,
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@@ -1156,6 +1046,7 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
@@ -1565,7 +1456,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "base",
"language": "python", "language": "python",
"name": "python3" "name": "python3"
}, },
@@ -1579,8 +1470,9 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.4"
"version": "3.9.12"
}, },
"orig_nbformat": 4,
"vscode": { "vscode": {
"interpreter": { "interpreter": {
"hash": "1ef4a26de7183d96d6da1045a38581e0a15b2215d0c1b98c7b273c6e514c6c7e" "hash": "1ef4a26de7183d96d6da1045a38581e0a15b2215d0c1b98c7b273c6e514c6c7e"


+ 1044
- 252
test.json
Разлика између датотеке није приказан због своје велике величине
Прегледај датотеку


Loading…
Откажи
Сачувај