12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- <?xml version="1.0" encoding="utf-8"?>
- <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
- <POU Name="DataHold" Id="{22ba336d-8164-4b85-a136-eb4e412d61f5}" SpecialFunc="None">
- <Declaration><![CDATA[PROGRAM DataHold
- VAR
- fb1sUPS: FB_S_UPS_BAPI; //FB_S_UPS_BAPI用于CX5230,
- // fb1sUPS: FB_S_UPS_CX51x0; //FB_S_UPS_CX51x0用于CX5120
- bPowerFailDetect: BOOL;
- eState : E_S_UPS_State;
- eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; (* UPS mode (w/wo writing persistent data, w/wo shutdown) *)
- fbWritePersistent : FB_WritePersistentData;
- bWritePersistent : BOOL;
- END_VAR
- ]]></Declaration>
- <Implementation>
- <ST><![CDATA[(* eUpsMode:
- eSUPS_WrPersistData_Shutdown: 写完persistent 数据再关机 QuickShutdown
- eSUPS_WrPersistData_NoShutdown: 只写persistent data数据,不关机——储电耗尽非正常关机,可能对操作系统造成破坏,但如果很快供电恢复,可以避免系统重启 (no QuickShutdown)
- eSUPS_ImmediateShutdown: 不写数据,直接关机
- eSUPS_CheckPowerStatus: 不写数据,也不关机,只监视供电状态,等同于没有UPS的效果
- *)
- //断电时自动保存
- //当bPowerFailDetect为True时,表明检测到了供电故障(断电)
- fb1sUPS(sNetID:= ,iPLCPort:= 851,tTimeout:= ,eUpsMode:=eUpsMode , ePersistentMode:= ,tRecoverTime:= ,bPowerFailDetect=>bPowerFailDetect,eState=>,nCapacity=> ,bBusy=> ,bError=> ,nErrID=> );
- //受控的数据保存
- //bWritePersistent人为触发保存动作,上升沿触发
- fbWritePersistent(NETID:= ,PORT:=851 ,START:=bWritePersistent ,TMOUT:=T#1S , MODE:= , BUSY=> ,ERR=> , ERRID=> );
- IF fbWritePersistent.BUSY THEN
- bWritePersistent:=FALSE;
- END_IF]]></ST>
- </Implementation>
- <LineIds Name="DataHold">
- <LineId Id="6" Count="7" />
- <LineId Id="49" Count="0" />
- <LineId Id="14" Count="0" />
- <LineId Id="27" Count="2" />
- <LineId Id="50" Count="0" />
- <LineId Id="30" Count="0" />
- <LineId Id="40" Count="1" />
- <LineId Id="5" Count="0" />
- </LineIds>
- </POU>
- </TcPlcObject>
|