登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:S7-300时间数据类型求助

点击:3039 回复:7

求助:使用s7-300编一个计时器程序,实现通过上位机设定时间,设定时间到触发下一步动作。关键是时间数据类型问题,想通过上位机设定的是10进制数其单位为秒。请各位高人指点如何方便实现。
07-04-14 08:41
上位机写数值到下位机,然后在PLC中对上位机上写入的数值的第12,13位填写时基,秒的时基应该为10
时基为10MS的应该写00
        100MS的应该写01
        10S的应该写11
请注意:S5time的时间值最多为999,定时长度为时间值×时基
例如:
      上位机写100秒,那么就将100作为无符号整形数值写到DB1.DBW0中去
下位机:
       L   DB1.DBW0//2#0000000001100100就是数值100的二进制表示法,为了给你说明白,全部使用二进制表示,实际使用时并不限于二进制表示
     AW W#16#0FFF//可以看成2#0000111111111111,那么清空第12~15位
    OW  W#16#2000 //给12,13位填写时基,这里填2就是10,即秒
    T   DB1.DBW2  //此时DBW2中存放的就是S5time格式的时间100秒。
当然你也可以调用转换块,其转换原理和以上相同,这里不再论述。
     
07-04-14 11:39
多谢指点!万分感谢!
07-04-14 15:29
做了仿真可结果是8s292ms,为什么?请指点
07-04-14 15:44
测试结果:实际在PLCSIM中显示的就是如您所测试的,但是在程序中实际上是64秒,因为100的16进制正好是64,所以应使用16进制来表达您实际需要的延时时间。
07-04-14 16:12
请指教应该调用哪个功能块呢
07-04-14 22:54
学习 学习
还有这种用法
涨见识了
07-04-15 19:48
西门子定时器数据类型是BCD格式,应在第一条指令后加上ITB指令,否则100的2#为1100100将此数传给定时器,定时器按BCD码处理,则为64,所以仿真为64秒,正确指令为:L DB1.DBW0                                                                 ITB                                                                           L W#16#2000                                                                    OW                                                                            T DB1.DBW2          
12-06-20 16:32

工控新闻

更多新闻资讯