找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
1、怎样把这个实型值转换成S5Time类型?
a、整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。
b、写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。
c、32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成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
j将求出的十进制时间值转换成BCD码,再与时基相或后,即可直接作为定时器的预装值。
参考《S7-300 和S7-400编程语句表(STL)参考手册》
还有一种方法:利用时钟脉冲的上升沿对一变量自加,直到累加到求出的十进制时间值为止。当然也要考虑脉冲的时间单位。注意要选择Cycle/Clock Memory(循环/时钟存储器)并分配地址。
参考《STEP7 V5.4编程手册》
2. 整数INT到时间Time的转换方法:INT -> I_DI指令 -> DINT -> MOVE指令 -> Time。如图示:
3. 时间S5Time到整数INT的转换方法:
S5Time -> 库函数FC33 -> Time -> MOVE指令 -> DINT -> 取其高字部分,用MOVE指令 -> INT。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!