Browse Source

Equipment To Json added

najafi
mahmood19227 1 year ago
parent
commit
e652b5c2c9
20 changed files with 1501 additions and 2257 deletions
  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 View File

@@ -57,26 +57,26 @@
"name": "stdout",
"output_type": "stream",
"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": [
"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",
"lines = input.readlines()\n",
"for line in lines:\n",


+ 0
- 28
CSharp/BasicInputs/WellProfile/CPathGeneration.f90 View File

@@ -1,4 +1,3 @@
<<<<<<< HEAD
module CPathGeneration
use SimulationVariables !@
use json_module
@@ -43,31 +42,4 @@ module CPathGeneration
call json%add(parent,ppath)
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

+ 31
- 31
CSharp/Equipments/ControlPanels/CBopControlPanel.f90 View File

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

subroutine CBopToJson(parent)
subroutine BopControlPanelToJson(parent)

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

! 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)


+ 16
- 170
CSharp/Equipments/ControlPanels/CChokeControlPanel.f90 View File

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

subroutine CChokeToJson(parent)
subroutine ChokeControlPanelToJson(parent)

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

! 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)
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

+ 21
- 23
CSharp/Equipments/ControlPanels/CChokeManifold.f90 View File

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

subroutine CChokeManifoldToJson(parent)
subroutine ChokeManifoldToJson(parent)

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

! 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)
end subroutine


+ 83
- 84
CSharp/Equipments/ControlPanels/CDataDisplayConsole.f90 View File

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

subroutine CDataDisplayToJson(parent)
subroutine DataDisplayConsoleToJson(parent)

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

! 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)


+ 85
- 946
CSharp/Equipments/ControlPanels/CDrillingConsole.f90
File diff suppressed because it is too large
View File


+ 4
- 4
CSharp/Equipments/ControlPanels/CHook.f90 View File

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

subroutine CHookToJson(parent)
subroutine HookToJson(parent)

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

! 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)
end subroutine


+ 0
- 16
CSharp/Equipments/ControlPanels/CHookActions.f90 View File

@@ -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 View File

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


subroutine CStandPipeToJson(parent)
subroutine StandPipeManifoldToJson(parent)

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

! 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)
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

+ 18
- 245
CSharp/Equipments/ControlPanels/CTopDrivePanel.f90 View File

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

subroutine CDrivePanelToJson(parent)
subroutine TopDrivePanelToJson(parent)

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


! 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)
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 View File

@@ -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 View File

@@ -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
use SimulationVariables
@@ -28,38 +7,33 @@
contains


subroutine CTankToJson(parent)
subroutine TankToJson(parent)

type(json_value),pointer :: parent
type(json_core) :: json
type(json_value),pointer :: p,pform
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)
end subroutine
@@ -77,5 +51,4 @@
end subroutine

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

+ 7
- 0
Makefile View File

@@ -163,6 +163,13 @@ SRCS_F =\
CSharp/Problems/CMudTreatmentProblemsVariables.f90 \
CSharp/Problems/CBopProblemsVariables.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/CChokeProblems.f90 \
CSharp/Equipments/ControlPanels/CHook.f90 \


+ 1
- 1
Simulation/SimulationVariables.f90 View File

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


BIN
View File


+ 40
- 8
Simulator.f90 View File

@@ -53,6 +53,17 @@ module Simulator
use PermissionsModule
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
implicit none
@@ -92,6 +103,9 @@ module Simulator
call initConnection()
call write_variables()
call read_variables()
call jsoncore%print(jsonvalue,'test.json')
call jsoncore%destroy(jsonvalue)
! print *,"s2=",redisContent
! call deallocateData()
! print *,"redisContent Deallocated!"
@@ -198,19 +212,12 @@ module Simulator
call ConfigurationToJson(jsonvalue)
call WarningsToJson(jsonvalue)
call ProblemsToJson(jsonvalue)
call EquipmentsToJson(jsonvalue)

print *,"write starts"
<<<<<<< HEAD
call jsoncore%serialize(jsonvalue,redisContent)
! s = "Test redis write!"
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"
end subroutine

@@ -268,6 +275,31 @@ module Simulator
! call OperationScenarios_Init()
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)

type(json_value),pointer :: parent


+ 19
- 21
Text1.txt View File

@@ -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 View File

@@ -1,73 +1,22 @@
{
"cells": [
{
<<<<<<< HEAD
"attachments": {},
"cell_type": "markdown",
"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": [
"# Make makefile"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 72,
=======
"execution_count": 5,
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
<<<<<<< HEAD
"\tCSharp/OperationScenarios/Common/COperationScenariosVariables.f90 /\n",
"\tTorqueDrag/TD_Modules/TD_WellGeometry.f90 /\n",
"\tTorqueDrag/TD_Modules/TD_WellElements.f90 /\n",
@@ -373,28 +322,10 @@
"\tSimulationCore2.f90 /\n",
"\tEquipments/MudSystem/Plot_Final_Mud_Elements.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": [
<<<<<<< HEAD
"import re\n",
"current_dir = 'C:\\\\Projects\\\\VSIM\\\\SimulationCore2\\\\'\n",
"target_dir = 'x64\\\\Debug\\\\'\n",
@@ -973,25 +904,38 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"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"
]
}
],
"source": [
"#Artifical JSon\n",
"input = open(\"Text1.txt\")\n",
"output = \"{\"\n",
"lines = input.readlines()\n",
@@ -1020,10 +964,7 @@
}
],
"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",
"lines = input.readlines()\n",
"for line in lines:\n",
@@ -1037,72 +978,24 @@
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 20,
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"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",
"execution_count": 3,
=======
"execution_count": 2,
>>>>>>> 12c8e5ea51ec0ab746d971224588f794381f80d2
"metadata": {},
"outputs": [
{
@@ -1156,6 +1046,7 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@@ -1565,7 +1456,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "base",
"language": "python",
"name": "python3"
},
@@ -1579,8 +1470,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.4"
"version": "3.9.12"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "1ef4a26de7183d96d6da1045a38581e0a15b2215d0c1b98c7b273c6e514c6c7e"


+ 1044
- 252
test.json
File diff suppressed because it is too large
View File


Loading…
Cancel
Save