怎么把16进制的数字转化为S5T#格式?

请问:我用维纶通的触摸屏连接西门子300系列的PLC,需要更改300里面的定时器预置时间值,但是屏这边是16进制的数字,而300里需要的是S5T#格式的数字。请教各位有什么办法能解决这个问题。谢谢!在线等!加急

最佳答案

1、16进制的数表示:
W#16#wxyz 
w = 时基 (即时间间隔或精度) 
xyz = BCD格式的时间值 
这种方式只能用于STL编程。
从上位机写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。
2、参考:
《如何在操作面板上设定定时器时间, 同时如何输出定时器的剩余时间?》下载:
http://www2.ad.siemens.com.cn/Download/Upload/AS/FAQ/23992560.zip 
参见《TIME, DATE and TIMER in STEP 7》下载:
http://d101.d.iask.com/fs/800/1/3afb689f14c1def3889e0e7413fba89e10236930/pdf/Time%2C+Date+and+Timer+in+STEP+7.pdf

提问者对于答案的评价:
很具体,谢谢!
我对S5T的格式不了解造成的。(S5T#是BCD格式,所以只要把屏上的地址在程序里转换成BCD就可以,如果想改变时基,用异或指令就可以。具体时基可以参照阿明的文档,只是12和13位。)

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc248215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日
下一篇 2018年12月2日

相关推荐