sd91
西门子S7-1200与基恩士扫码器通信中,读到条码信息传给PLC后,通过TSEND_C功能块把数据传给上位机,现在通过网络调试助手进行测试,遇到两个问题。1.数据前边为什么有个问号。2.传送的数据有18位和14位两种,随机发送的,问题是传完18位的后,传14位的时候后边会多几位数,多的是18位数据的后几位,这是什么原因。
楼主最近还看过
黄鸿卿
看了下程序,以前也做过TCP可以通讯上,个人觉得程序原因不大,最好是问下基恩士那边
xiexie1999
楼主上传一下图片看看 有的是读取的数据在里面 所以位数会有变化
回复内容:
对: xiexie1999 楼主上传一下图片看看 有的是读取的数据在里面 所以... 内容的回复!
-------------------------
对: 黄鸿卿 看了下程序,以前也做过TCP可以通讯上,个人觉得程序原... 内容的回复!
基恩士跟PLC通信应该没问题,传到PLC的数据是对的,PLC传给上位机的时候数据不对,感觉是传14位数据的时候覆盖掉上次传的数据,没有完全覆盖掉,18位数据的后3位跟着一起传过来了
Lasermade
对: sd91 回复内容:对: 黄鸿卿 看了下程序,以前也做过TCP... 内容的回复!
不是你程序有问题,而是你处理数据时候有问题,打个比方,你第一次传上来的是18位数据,最后四位是“a8de”,第二次你再传上来14位数据,只有14位变了,然而你后面多出来的4位是上一次的数据,并没有任何变化。所以读取数据之前,最好把相关寄存器数据清空,否则数据位数不一样,读出来的数据肯定不一样,特别是上一次读的位数比下一次读的多的时候,读出来的几位是上一次的结果
请叫我王老湿
楼上说的很正确,是你两次读的数据长度不一样,后一次的长度太短了,没有把上一次多余的寄存器给覆盖掉
比如我第一次收到11位数据“AB12345ABCD”
第二次我收到7位数据“123abcd”但是实际寄存器中收到的数据确实这样的
所以读取数据长度最好一样,如果不一样,最好在程序里面做一些处理,否则读取出来的数据并不是你想要的结果
最好的办法是在接收数据时先把寄存器里面数据清空,使得下一次读取结果不受上一次影响
我看了读码器传过来的数据,也是对的,18位就是18位,传完18位再传14位的,位数也对。具体我该清空哪里的数据,是读码器传给PLC的,还是PLC传给上位机的。
对: 请叫我王老湿 最好的办法是在接收数据时先把寄存器里面数据清空,使得下... 内容的回复!
对: Lasermade 回复内容:对: sd91 回复内容:对: 黄鸿卿 ... 内容的回复!
我看了读取的数据,位数也是对的,读14位的时候就是14位,没有包括18位的后几位,这样我要清空哪里的数据,TSEND_C功能块发送完数据,要怎么把发送完的数据清空?
谢谢各位大佬,问题已经解决了,开始我把读码器传给PLC的字符先合并成字符串再发给上位机,就出现上面的问题,现在我直接把读码器传过来的字符发给上位机,就没有问题了。有知道具体什么原因的,麻烦给解释下,谢谢。
老姐姐
楼上全是正解
luanshiqiye
您好,请问能把程序发我学习一下么?正在搞一个基恩士扫码和相机和1200及上位机通讯,遇到点问题。邮箱286813432@qq.com。 谢谢!!
对: luanshiqiye 您好,请问能把程序发我学习一下么?正在搞一个基恩士扫码... 内容的回复!
已发
mengke1000000
有程序码看看
Smile-lyc
感谢诸位大佬积极答疑,同时也希望求助者能够在得到满意答案后积极结贴发放自己设置的积分奖励,如果没有得到满意答案,自己努力下获取解决方案,也不妨分享到您的求助帖下面。资源分享一起进步哦。
fdd
您好,请问能把程序发我学习一下么?正在搞一个基恩士扫码和相机和1200及上位机通讯,遇到点问题。邮箱504651134@qq.com。 谢谢!!
邹建康1
最近准备搞博图和基恩士扫码器通讯,师傅能给个程序参考下吗1136776562@qq.com 谢谢
南城以外还是南
您好,请问能把程序发我一下么?正在搞一个扫码枪和1200及上位机通讯。邮箱1139579011@qq.com
Lonely_99
最近准备搞博图和基恩士扫码器通讯
我可以
最近准备搞博图和基恩士接触式位移传感器的通讯,师傅能给个程序参考下吗447678096@qq.com 谢谢