| 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 DataHoldVAR	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>
 |