Project: Gravel

VFSM type: CMD(predefined vfsm)
Object name: Conveyor:Cmd

Properties
NameValue
Typeconveyor

Object name: ConveyorLamp:Cmd

Properties
NameValue
Typeblink

Object name: SiloLamp:Cmd

Properties
NameValue
Typeblink

VFSM type: TI(predefined vfsm)
Object name: ConveyorLamp:TimerOff

Properties
NameValue
Const5
Clock100ms

Object name: ConveyorLamp:TimerOn

Properties
NameValue
Const6
Clock100ms

Object name: RunInTimer

Properties
NameValue
Const4
Clocksec

Object name: RunOutTimer

Properties
NameValue
Const10
Clocksec

Object name: SilentTimer

Properties
NameValue
Const5
Clocksec

Object name: SiloLamp:TimerOff

Properties
NameValue
Const5
Clock100ms

Object name: SiloLamp:TimerOn

Properties
NameValue
Const6
Clock100ms

VFSM type: DI(predefined vfsm)
Object name: ACKNOWLEDGE
Object name: BinEmpty
Object name: FILL
Object name: JOG
Object name: LAMP_TEST
Object name: LOAD
Object name: OFF
Object name: ON
Object name: SiloEmpty
Object name: TrackOnRamp

VFSM type: DO(predefined vfsm)
Object name: BinValve
Object name: CONTROL_ON
Object name: CONV_RUNNING
Object name: ConveyorMotor
Object name: SILO_EMPTY
Object name: SiloSiren
Object name: SiloValve
Object name: TR_ON_RAMP

VFSM type: NI(predefined vfsm)
Object name: GravelLevel

Properties
NameValue
Formatshort
Unit
ScaleMode<none>
ScaleFactor1
Offset0
Threshold0

VFSM type: SWIP(predefined vfsm)
Object name: GravelSwip

Properties
NameValue
InputGravelLevel
LimitLow1
LimitHighSetPoint

VFSM type: PAR(predefined vfsm)
Object name: SetPoint

Properties
NameValue
CategoryEP
Formatshort
Unit
LimitLow0
LimitHigh0
InitValue0

VFSM type: STR(predefined vfsm)
Object name: Str:01

Properties
NameValue
Input
RegularExpression

VFSM type: ECNT(predefined vfsm)
Object name: Ecnt:Siren

Properties
NameValue
Const3
InputSilentTimer
UpValue4

VFSM type: Blink(user vfsm)
BLNK BLINK generates a cycling Do signal that is used to drive a flashing light. BLINK oscilates between two states or it can be set to a stable on or off. The behaviour is controlled by command: On, Off and Blink. The oscilation period is determined by two Timers. For test of the output lamp a direct digital input is used.

Prefix: BLI

Object name: ConveyorLamp

Properties
NameValue
MyCmdConveyorLamp:Cmd
TimerOffConveyorLamp:TimerOff
TimerOnConveyorLamp:TimerOn
TestLAMP_TEST
LightCONV_RUNNING

Object name: SiloLamp

Properties
NameValue
MyCmdSiloLamp:Cmd
TimerOffSiloLamp:TimerOff
TimerOnSiloLamp:TimerOn
TestLAMP_TEST
LightSILO_EMPTY

IOid name: MyCmd (type: CMD-IN)
-->Virtual Input: Cmd_Blink (1)
-->Virtual Input: Cmd_Off (2)
-->Virtual Input: Cmd_On (3)
-->Virtual Output: MyCmd_Clear (0)

IOid name: TimerOff (type: TI)
-->Virtual Input: TimerOff_OVER (OVER)
-->Virtual Output: TimerOff_ResetStart (ResetStart)
-->Virtual Output: TimerOff_Stop (Stop)

IOid name: TimerOn (type: TI)
-->Virtual Input: TimerOn_OVER (OVER)
-->Virtual Output: TimerOn_ResetStart (ResetStart)
-->Virtual Output: TimerOn_Stop (Stop)

IOid name: Test (type: DI)
-->Virtual Input: No_Test (LOW)
-->Virtual Input: Test (HIGH)

IOid name: Light (type: DO)
-->Virtual Output: Light_Off (Low)
-->Virtual Output: Light_On (High)

State transition table, state ' Off ':
Off
EntryAction:
Light_Off
ExitAction:
BlinkOn
Cmd_Blink
On
Cmd_On
Test
Test

State transition table, state ' BlinkOn ':
Di

BlinkOn
EntryAction:
Light_On
TimerOn_ResetStart
ExitAction:
TimerOn_Stop
BlinkOff
TimerOn_OVER and Cmd_Blink
Off
Cmd_Off or Cmd_On

State transition table, state ' BlinkOff ':
BlinkOff
EntryAction:
Light_Off
TimerOff_ResetStart
ExitAction:
TimerOff_Stop
BlinkOn
TimerOff_OVER
Off
Cmd_Off or Cmd_On

State transition table, state ' On ':
On
EntryAction:
Light_On
ExitAction:
Off
Cmd_Off
BlinkOn
Cmd_Blink

State transition table, state ' Test ':
Test
EntryAction:
Light_On
ExitAction:
Off
No_Test
Total number of states: 5

VFSM type: Control(user vfsm)

Prefix: CTR

Object name: Control

Properties
NameValue
MyCmd
OffPBOFF
OnPBON
ControlLampCONTROL_ON

IOid name: MyCmd (type: CMD-IN)

IOid name: OffPB (type: DI)
-->Virtual Input: Not_OffPB (LOW)
-->Virtual Input: OffPB (HIGH)

IOid name: OnPB (type: DI)
-->Virtual Input: OnPB (HIGH)

IOid name: ControlLamp (type: DO)
-->Virtual Output: ControlLamp_Off (Low)
-->Virtual Output: ControlLamp_On (High)

State transition table, state ' Control_Off ':
Control_Off
EntryAction:
ControlLamp_Off
ExitAction:
Control
OnPB and Not_OffPB

State transition table, state ' Control ':
Control
EntryAction:
ControlLamp_On
ExitAction:
Control_Off
OffPB
Total number of states: 2

VFSM type: Conveyor(user vfsm)

Prefix: CON

Object name: Conveyor

Properties
NameValue
MyCmdConveyor:Cmd
JogJOG
MotorConveyorMotor

IOid name: MyCmd (type: CMD-IN)
-->Virtual Input: Cmd_Off (1)
-->Virtual Input: Cmd_On (2)

IOid name: Jog (type: DI)
-->Virtual Input: Jog_Off (LOW)
-->Virtual Input: Jog_On (HIGH)

IOid name: Motor (type: DO)
-->Virtual Output: Motor_Off (Low)
-->Virtual Output: Motor_On (High)

State transition table, state ' Off ':
Off
EntryAction:
Motor_Off
ExitAction:
On
Cmd_On or Jog_On

State transition table, state ' On ':
On
EntryAction:
Motor_On
ExitAction:
Off
Cmd_Off and Jog_Off
Total number of states: 2

VFSM type: GravelMy(user vfsm)

Prefix: GRV

Object name: GravelMy

Properties
NameValue
MyCmd
ControlControl
ConveyorCmdConveyor:Cmd
ConveyorLampCmdConveyorLamp:Cmd
SiloLampCmdCmdSiloLamp:Cmd
Run_In_TimerRunInTimer
Runout_TimerRunOutTimer
Silent_TimerSilentTimer
Ack_PBACKNOWLEDGE
Bin_Empty_LsBinEmpty
Fill_PBFILL
Lamp_TestLAMP_TEST
Load_PBLOAD
Silo_Empty_LsSiloEmpty
Truck_On_RampTrackOnRamp
Bin_ValveBinValve
Control_LampCONTROL_ON
Silo_ValveSiloValve
SirenSiloSiren
Truck_LampTR_ON_RAMP
Level_CtrGravelSwip
EcntSirenEcnt:Siren

IOid name: MyCmd (type: CMD-IN)

IOid name: Control (type: VFSM)
control

-->Virtual Input: Control_X ( Control )
-->Virtual Input: Not_Control_X ( Control_Off )

IOid name: ConveyorCmd (type: CMD-OUT)
conveyor

-->Virtual Output: ConveyorCmd_Off (1)
-->Virtual Output: ConveyorCmd_On (2)

IOid name: ConveyorLampCmd (type: CMD-OUT)
blink

-->Virtual Output: ConveyorLampCmd_Blink (1)
-->Virtual Output: ConveyorLampCmd_Off (2)
-->Virtual Output: ConveyorLampCmd_On (3)

IOid name: SiloLampCmdCmd (type: CMD-OUT)
blink

-->Virtual Output: SiloLampCmd_Blink (1)
-->Virtual Output: SiloLampCmd_Off (2)
-->Virtual Output: SiloLampCmd_On (3)

IOid name: Run_In_Timer (type: TI)
-->Virtual Input: Run_In_Timer_OVER (OVER)
-->Virtual Output: Rin_In_Timer_ResetStart (ResetStart)
-->Virtual Output: Rin_In_Timer_Stop (Stop)

IOid name: Runout_Timer (type: TI)
For_Loading_Truck

-->Virtual Input: Runout_Timer_OVER (OVER)
-->Virtual Output: Runout_Timer_Reset (Reset)
-->Virtual Output: Runout_Timer_Start (Start)
-->Virtual Output: Runout_Timer_Stop (Stop)

IOid name: Silent_Timer (type: TI)
-->Virtual Input: Silent_Timer_OVER (OVER)
-->Virtual Input: Silent_Timer_RESET (RESET)
-->Virtual Input: Silent_Timer_RUN (RUN)
-->Virtual Output: Silent_Timer_Reset (Reset)
-->Virtual Output: Silent_Timer_Start (Start)

IOid name: Ack_PB (type: DI)
-->Virtual Input: Ack_PB (HIGH)

IOid name: Bin_Empty_Ls (type: DI)
Limit_switch

-->Virtual Input: Bin_Empty_Ls (HIGH)

IOid name: Fill_PB (type: DI)
-->Virtual Input: Fill_PB (HIGH)
-->Virtual Input: Not_Fill_PB (LOW)

IOid name: Lamp_Test (type: DI)
-->Virtual Input: Lamp_Test (HIGH)
-->Virtual Input: Not_Lamp_Test (LOW)

IOid name: Load_PB (type: DI)
-->Virtual Input: Load_PB (HIGH)

IOid name: Silo_Empty_Ls (type: DI)
Limit_switch

-->Virtual Input: Silo_Empty (HIGH)
-->Virtual Input: Silo_Not_Empty (LOW)

IOid name: Truck_On_Ramp (type: DI)
Optical_sensor

-->Virtual Input: Not_Truck_On_Ramp (LOW)
-->Virtual Input: Truck_On_Ramp (HIGH)
-->Virtual Input: Truck_On_Ramp_UNKNOWN (UNKNOWN)

IOid name: Bin_Valve (type: DO)
Allow_Bin_Output

-->Virtual Output: Bin_Valve_Close (Low)
-->Virtual Output: Bin_Valve_Open (High)

IOid name: Control_Lamp (type: DO)
-->Virtual Output: Control_Lamp_Off (Low)
-->Virtual Output: Control_Lamp_On (High)

IOid name: Silo_Valve (type: DO)
Allow_Bin_Fill

-->Virtual Output: Silo_Valve_Close (Low)
-->Virtual Output: Silo_Valve_Open (High)

IOid name: Siren (type: DO)
-->Virtual Output: Siren_Off (Low)
-->Virtual Output: Siren_On (High)

IOid name: Truck_Lamp (type: DO)
-->Virtual Output: Truck_Lamp_Off (Low)
-->Virtual Output: Truck_Lamp_On (High)

IOid name: Level_Ctr (type: SWIP)
Bin_Contents

-->Virtual Input: Level_Ctr_HIGH (HIGH)
-->Virtual Input: Level_Ctr_IN (IN)
-->Virtual Input: Level_Ctr_LOW (LOW)
-->Virtual Output: Level_Ctr_On (On)

IOid name: EcntSiren (type: ECNT)
-->Virtual Input: EcntSiren_RUN (RUN)
-->Virtual Output: EcntSiren_Reset (Reset)
-->Virtual Output: EcntSiren_Start (Start)

Always: input actions valid in each state:
Control_X or Lamp_Test
Control_Lamp_On
Not_Control_X and Not_Lamp_Test
Control_Lamp_Off
Truck_On_Ramp or Lamp_Test
Truck_Lamp_On
Not_Truck_On_Ramp and Not_Lamp_Test
Truck_Lamp_Off
Silo_Empty
SiloLampCmd_Blink
Silo_Not_Empty
SiloLampCmd_Off
Silo_Empty and Silent_Timer_RESET and EcntSiren_RUN
Siren_On
Silo_Not_Empty or Silent_Timer_RUN
Siren_Off
Ack_PB
Silent_Timer_Start
Silent_Timer_OVER
Silent_Timer_Reset
Silo_Empty
EcntSiren_Start
Silo_Not_Empty
EcntSiren_Reset

State transition table, state ' Start ':
Start
EntryAction:
ConveyorCmd_Off
ConveyorLampCmd_Off
Runout_Timer_Reset
ExitAction:
Level_Ctr_On
To_Fill_Bin
Fill_PB and Control_X

State transition table, state ' Fill_Bin ':
Fill_Bin
EntryAction:
Silo_Valve_Open
ExitAction:
Silo_Valve_Close
Load_Wait
Level_Ctr_HIGH
To_Start
Fill_PB or Not_Control_X

State transition table, state ' To_Start ':
To_Start
EntryAction:
ExitAction:
Start
Not_Fill_PB

State transition table, state ' To_Fill_Bin ':
To_Fill_Bin
EntryAction:
ExitAction:
Fill_Bin
Not_Fill_PB

State transition table, state ' Load_Wait ':
Load_Wait
EntryAction:
ConveyorCmd_Off
ConveyorLampCmd_Off
ExitAction:
Run_In
Load_PB and Control_X and Truck_On_Ramp

State transition table, state ' Run_In ':
Run_In
EntryAction:
ConveyorCmd_On
ConveyorLampCmd_Blink
Rin_In_Timer_ResetStart
ExitAction:
Rin_In_Timer_Stop
Dump_Bin
Run_In_Timer_OVER
Load_Wait
Not_Control_X or Not_Truck_On_Ramp

State transition table, state ' Dump_Bin ':
Dump_Bin
EntryAction:
Bin_Valve_Open
ExitAction:
Bin_Valve_Close
Load_Wait
Not_Control_X or Not_Truck_On_Ramp
Run_Out
Bin_Empty_Ls and Level_Ctr_LOW

State transition table, state ' Run_Out ':
Run_Out
EntryAction:
Runout_Timer_Start
ExitAction:
Runout_Timer_Stop
Start
Runout_Timer_OVER
Load_Wait
Not_Control_X or Not_Truck_On_Ramp
Total number of states: 9

VFSM type: DI8(unit)
Prefix: DIU

Object name: DI8:01

Properties
NameValue
CommPort0
PhysAddr1
Di0ON
Di1OFF
Di2ACKNOWLEDGE
Di3FILL
Di4LOAD
Di5BinEmpty
Di6SiloEmpty
Di7TrackOnRamp

IOid name: Di0 (type: DI)

IOid name: Di1 (type: DI)

IOid name: Di2 (type: DI)

IOid name: Di3 (type: DI)

IOid name: Di4 (type: DI)

IOid name: Di5 (type: DI)

IOid name: Di6 (type: DI)

IOid name: Di7 (type: DI)

VFSM type: DO8(unit)
Prefix: DOU

Object name: DO8:01

Properties
NameValue
CommPort0
PhysAddr3
Do0CONTROL_ON
Do1TR_ON_RAMP
Do2SILO_EMPTY
Do3CONV_RUNNING
Do4SiloSiren
Do5SiloValve
Do6BinValve
Do7ConveyorMotor

IOid name: Do0 (type: DO)

IOid name: Do1 (type: DO)

IOid name: Do2 (type: DO)

IOid name: Do3 (type: DO)

IOid name: Do4 (type: DO)

IOid name: Do5 (type: DO)

IOid name: Do6 (type: DO)

IOid name: Do7 (type: DO)

VFSM type: NO4(unit)
Prefix: NO4

IOid name: No0 (type: NO)

IOid name: No1 (type: NO)

IOid name: No2 (type: NO)

IOid name: No3 (type: NO)

VFSM type: NI4(unit)
Prefix: NI4

Object name: NI4:01

Properties
NameValue
CommPort0
PhysAddr5
Ni0GravelLevel
Ni1
Ni2
Ni3

IOid name: Ni0 (type: NI)

IOid name: Ni1 (type: NI)

IOid name: Ni2 (type: NI)

IOid name: Ni3 (type: NI)