Is there a know way to convert an existing structured text PLC code to a function block diagram? (Or even CFC with Beckhoff)
I know this is difficult because of the different flows the languages are based on.
Maybe only partialy or atleast some structure with the right variables connected to the function blocks?
I have to create a logic code overview in Visio, based on the look of FBD, and it would be a great help to have atleast some structure to base my drawings on and not have to draw everything from base ST code.
A small example code woudl be this 'BrakeControl' FB done in ST, but there are much larger FBs I need to map:
IF stSettings.bExists THEN
IF stSettings.eMode = E_OPMode.eOPModeOpen OR stSettings.eMode = E_OPMode.eOPModeClose THEN
// close brake manual - only possible if below max braking rpm and hydraulic closed
bCloseBrake := stSettings.eMode = E_OPMode.eOPModeClose AND stIO.stGenerator.IstGen_Speed.fPercent < stSettings.fStartRev AND itfHydCtrl.IsClosed;
ELSE
IF stIOs.IbBrake_Auto AND stIOs.IbBrake_Worn AND
(itfTurbCtrl.State = E_TurbState.eTurbStateFault OR
itfTurbCtrl.State = E_TurbState.eTurbStateStop OR
itfTurbCtrl.State = E_TurbState.eTurbStateReady )
THEN
IF stIO.stGenerator.IstGen_Speed.fPercent < stSettings.fStartRev AND itfHydCtrl.IsClosed THEN
bCloseBrake := TRUE;
END_IF
END_IF
IF stIOs.IbBrake_Auto AND NOT stIOs.IbBrake_Worn AND itfTurbCtrl.ManualMode THEN
IF stIO.stGenerator.IstGen_Speed.fPercent < stSettings.fStartRev AND stIO.stPenstock.IbBypass_Closed
AND stIO.stPenstock.IbMIV_Closed AND itfHydCtrl.IsClosed THEN
bCloseBrake := TRUE;
END_IF
END_IF
END_IF
IF bBrakeRelease THEN
bCloseBrake := FALSE;
END_IF
stIOs.QbBrake_On := bCloseBrake;