wu32u2
耐得住挫折的打磨,我们将迸发出比钻石还璀璨的光芒——
级别: 论坛先锋
精华主题: 0
发帖数量: 1121 个
工控威望: 1474 点
下载积分: 1772 分
在线时间: 994(小时)
注册时间: 2010-03-01
最后登录: 2024-09-02
查看wu32u2的 主题 / 回贴
楼主  发表于: 2010-12-08 09:55
图片:
愿工控战友们少走弯路,积累经验,感谢njaolian,汇荣铝业,meiyouleya,sandy_love各位的热心帮助。
在rs指令上台达PLC和三菱plc有一点区别:同样在只接受数据的情况下,三菱不需要触发置位M8122便进入接收状态,台达PLC则每次需要上升沿触发置位M1122才能使RS指令进入接收状态。这样一来就出现一个问题:类似扫描枪这样的功能,在不能确定何时接收数据的情况下需要RS指令一直处于接收状态,则需要经常触发M1122(台达PLC的发送请求同比三菱的M8122的功能),但是接收数据时不能置位M1122否则将导致接受的数据丢失或缺损(我没注意到这一点,把M1122一直置位了,导致数据经常丢失——三菱PLC不需要置位M8122不存在这样的问题),现在采用一个定时器每隔两秒上升沿触发置位M1122,虽然这样仍然有可能在PLC接受条形码的时候M1122置位,但概率很小,昨天现场调试,两百次内数据无丢失,时间间隔越短则出现数据丢失的可能性会增加。。目前这方法也是权宜之计~
   希望对大家有所帮助,若有更好的办法彻底解决数据丢失,望大侠们不吝赐教,让像我一样的菜菜们学习点经验。付程序图
[ 此帖被wu32u2在2010-12-08 10:01重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(刻骨铭心) 热心助人!
  • 下载积分:+3(xqx666) 支持原创
  • 下载积分:+10(sjm213) 感谢分享
  • 成功的路上需要帮助
    sandy_love
    感悟生活,创新的源泉...
    级别: 家园常客
    精华主题: 0
    发帖数量: 487 个
    工控威望: 823 点
    下载积分: 1610 分
    在线时间: 482(小时)
    注册时间: 2008-12-08
    最后登录: 2025-01-04
    查看sandy_love的 主题 / 回贴
    1楼  发表于: 2010-12-08 11:19
    只需要接受数据?你用的设备是单工通讯的吗?
    没必要等2秒才发一次吧,如果是全双工通讯一次发送完成了就可以下一次发送。
    接收也一样,接收完了立即把接收完成标志清了就可以了
    楼主留言:
    恩,只需要接受来自扫描枪的数据,问题是这次接收完成后想再次进入接收状态需要再次置位发送请求。。电话咨询了下代理商的技术顾问。他是这么说来着。
    sandy_love
    感悟生活,创新的源泉...
    级别: 家园常客
    精华主题: 0
    发帖数量: 487 个
    工控威望: 823 点
    下载积分: 1610 分
    在线时间: 482(小时)
    注册时间: 2008-12-08
    最后登录: 2025-01-04
    查看sandy_love的 主题 / 回贴
    2楼  发表于: 2010-12-08 14:46
    估计是半双工的通讯,在同一时刻总线上只允许有一个方向有数据传输;接收数据完了到下一次通讯要有时间间隔(好像是一个扫描周期忘了),把触发条件改为下降沿隔一个周期启动试试。另外用多个RS通讯时注意不能有冲突,而且要保证断开一个RS时不能够打开接收数据;就是说接收数据要在RS有效之内。这个问题以前好像也有过讨论,楼主查查看。
    或者楼主有没有台达的RS通讯的通讯时序图,发上来探讨一下?
    楼主留言:
    应该是全双工通讯吧,,接受数据时,不能置位M1122发送请求,唉手头上没有台达的时序图啊 。