一. 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倍.
画面中配置IO文本域, 关联到新建的浮点变量, 即可显示并修改. 内容来自www.dqjsw.com.cn电气自动化技术网
三. 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对应内存.