×
嵌入式 > 嵌入式开发 > 详情

WinCC显示和更改PLC中的"时间变量"

发布时间:2020-07-30 发布时间:
|

一. Step7中的两种时间变量 TIME 和 S5TIME

#TIME格式的时间变量: 占4字节, 本质上是一个interger型变量, 单位ms.

S5#TIME格式的时间变量: 占2字节, 表示成16进制为 W#16# wxyz ,
其中w表示时基: w=0,1,2,3时, 对应的时基依次为10ms, 100ms, 1s,10s
xyz以BCD码格式表示数值: xyz=123就表示123个时基.范围0~999.

二. WinCC中显示和修改 #TIME 格式变量.

新建32位浮点变量, 调整格式选 FloatToUnsignedDWord. 地址选中PLC中#TIME变量地址, 即可!
此时, 浮点变量是以ms为单位的时间值. 如需以s位单位, 线性标定里, 修改量程 使倍数为1000倍.

三. WinCC中显示和修改 #S5#TIME 格式变量值.

新建32位浮点数变量, 调整格式选 FloatToSimaticBCDTime, 地址选中PLC中S5TIME地址, 即可!
此时, 浮点变量是以ms为单位的时间值. 如需以s位单位, 线性标定里, 修改量程 使倍数为1000倍.

画面中配置IO文本域, 关联到新建的浮点变量, 即可正常显示. 经测试, 不把IO文本域的"输出格式"属性
修改为"字符串" (保持缺省的"10进制"格式), 同样可以正确修改.

需要注意的是, 由于S5TIME的限制, 并不能始终精确到10ms. 根据输入的值, WinCC会自动将之整定到对应的时基上. 比如: 输入100.5s时, 已经不能用100ms时基(在范围0-99.9s范围可用), 只能用1s的时基, 所以WinCC将输入整定为100.0s并写入PLC.

四. WinCC中定义变量窗口分析.

上图为WinCC中设置修改S5TIME值的变量定义图,

变量值: 选32位浮点数,4字节, 此处指WinCC中新建的变量为32位浮点型.
调整格式: 选FloatToSimaticBCDTime, 说明此Float变量, 经转化为 SimaticBCDTime(ms为单位)类型后, 与PLC中S5TIME变量相关联.
所谓格式调整, 调整方向为: 变量值--->过程值.
过程值地址选择: 此处指PLC中 S5TIME变量的地址.

线性标定: 指定 "变量值"(WinCC中变量) 与 "过程值"(PLC中变量值并经转化为临时float型) 的线性转化关系,
所谓的上下限, 并不是说要限制不能超限, 仅仅是为了得到"线性因子"和"线性偏移量".
因此, 设定成 [0, 1000] -->[0,1.000] (零点不偏移, 转化因子1000倍),
与设定成 [0, 9990]-->[0,9.990] (也是因子1000), 二者效果是完全相同的!

上面的设置, 显示时的数据流为:

PLC中S5Time变量值 ---> 从SimaticBCDTime到Float的类型转换(以ms为单位的数值) --->Float值(ms为单位)线性转化,即缩小1000倍 ----> 转化结果赋值给 TimeTag2变量(32位浮点型)

写入PLC时数据流方向刚好相反:

TimeTag值 ---> 扩大1000倍的线性转化 ---> 转化结果进行类型转换: 从float到SimaticBCDTime---> 转化得到的S5Time格式, 更新到PLC对应内存.




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
五大标准轻松搞定4K超高清电视选购