发布于 2010-05-20 16:36:03
1楼
在Step7中使用定时器时,设定时间和消逝时间是以S5time格式存贮。WinCC不能直接显示、修改这种类型的数据,需要作相应的转换,这样就造成Step7程序的臃肿。
如果对定时精度要去不高(100ms-200ms,OB35的执行周期),可以采取下列方法来做定时器,定时器的设定时间和消逝时间是以real格式存贮,这样WinCC可以直接访问、修改这些数据。
⒈建立一个FB功能块(该功能块必须在OB35中执行)
⒉定义输入端子:Start,定时器运行信号,bool。
⒊定义输入端子:SV,设定时间,real。
⒋定义输入端子:Sample_T,OB35的周期,real。(输入值=OB35的周期值,单位:秒)
⒋定义输出端子:Timeout,,定时器时间到,bool。
⒌定义输出端子:ElapseTime,定时器消逝时间,real。
功能说明:
⒈Start=Off时,Timeout=Off,ElapseTime=0.0。
⒉Start=On,且ElapseTime < SV时,Timeout=Off,ElapseTime=ElapseTime+Sample_T。
⒊Start=On,且ElapseTime ≥ SV时,Timeout=On,ElapseTime=SV。
由于设定时间(SV)和消逝时间(ElapseTime)均是real格式,WinCC可以直接访问、修改这些数据,无需数据格式的转换。
剩余时间=SV - ElapseTime。