Siemens PLC 时间格式问题
Siemens PLC S7-300中默认时间单位是毫秒,能不能设置为默认单位是秒,还是一定要在PLC中转换,在WINCC输入长时间时,毫秒为单位麻烦。
300的默认时间格式是S5T,不是毫秒!S5T是16位的BCD码,前4位为时基,后12位为BCD码。时基你可以选10s,1s,100ms,10ms。
当然300还支持IEC Time,那才是真正的以毫秒为单位。
可以在程序中直接+时基就可以了呀,我一直这么做的~~呵呵~可能有更好的办法吧~~
时间基准
定时器字的第12和13位包含二进制编码的时间基准。时间基准定义时间值以一个单位递减的间隔。最小的时间基准是10ms,最大为10s。
时间基准 时间基准的二进制编码
10ms 00
100ms 01
1 s 10
10 s 11
PLC中时间包含时基信息,可以使用下列语法格式之一预装载时间值:
1) W#16#wxyz
此处w = 时间基准(即时间间隔或分辨率)
此处xyz = 以二进制编码的十进制格式表示的时间值
2) S5T#aH_bbM_ccS_dddMS
此处 a = 小时,bb = 分钟,cc = 秒,dd = 毫秒
时间基准自动选择,该值四舍五入至具有此时间基准的下一个较小的数字。
可以输入的最大时间值是9,990秒或2H_46M_30S。
与wincc交换的时间最好采用整形,采用第一种方式,在PLC中通过移位、或指令生成时间格式。
简单应用如下:
PLC程序:用int类型地址如MW0代替定制器的时间值,其他杀也不做的话默认时基为00即10ms 。
WINCC组态:在WINCC中用输入输出框等连接修改MW0就行了。比如MW0为100的话,定时器值就是100*10ms 。你可以在WINCC中给做MW0做线性变换让他缩小1000倍,这样你的MW0连接的控件就已秒为单位操作和显示了
定时器设定:
假如你的时间的地址为MW10=W#16#wxyz
w 就是时基xyz =你的bcd格式 时间
W值 时基
0 10ms
1 100ms
2 1s
3 10s
比如时间10秒,可以这么表示DB10.DBW1010=W#16#3001
或者W#16#2010
或者W#16#1100
转换:
L MW12 //整数,比如触摸屏来的时间值,连接触摸屏标签的地址
ITB //转成bcd码
L W#16#2000 //时基是s
OW
T DB10.DBWxxx //你连接到定时器时间的地址
标签: 无标签
Siemens PLC 时间格式问题
Siemens PLC S7-300中默认时间单位是毫秒,能不能设置为默认单位是秒,还是一定要在PLC中转换,在WINCC输入长时间时,毫秒为单位麻烦。
300的默认时间格式是S5T,不是毫秒!S5T是16位的BCD码,前4位为时基,后12位为BCD码。时基你可以选10s,1s,100ms,10ms。
当然300还支持IEC Time,那才是真正的以毫秒为单位。
可以在程序中直接+时基就可以了呀,我一直这么做的~~呵呵~可能有更好的办法吧~~
时间基准
定时器字的第12和13位包含二进制编码的时间基准。时间基准定义时间值以一个单位递减的间隔。最小的时间基准是10ms,最大为10s。
时间基准 时间基准的二进制编码
10ms 00
100ms 01
1 s 10
10 s 11
PLC中时间包含时基信息,可以使用下列语法格式之一预装载时间值:
1) W#16#wxyz
此处w = 时间基准(即时间间隔或分辨率)
此处xyz = 以二进制编码的十进制格式表示的时间值
2) S5T#aH_bbM_ccS_dddMS
此处 a = 小时,bb = 分钟,cc = 秒,dd = 毫秒
时间基准自动选择,该值四舍五入至具有此时间基准的下一个较小的数字。
可以输入的最大时间值是9,990秒或2H_46M_30S。
与wincc交换的时间最好采用整形,采用第一种方式,在PLC中通过移位、或指令生成时间格式。
简单应用如下:
PLC程序:用int类型地址如MW0代替定制器的时间值,其他杀也不做的话默认时基为00即10ms 。
WINCC组态:在WINCC中用输入输出框等连接修改MW0就行了。比如MW0为100的话,定时器值就是100*10ms 。你可以在WINCC中给做MW0做线性变换让他缩小1000倍,这样你的MW0连接的控件就已秒为单位操作和显示了