使用s7 smart编写了一段自由口通讯程序,串口软件能收到数据,但不是我想要的。我用hex显示。如下图。不知道程序对不对,请各位大侠帮忙分析下
问题补充:
我只做了PLC数据接收的程序
图片说明:
最佳答案
因为串口调试软件有很多款,一般串口调试软件均自己具备一些具备数据的自动转换功能,如16进制数显示。
补充问题回复:
对与发送指令或者接收指令tbl管脚的第一个字节的数据是指发送或者接收的个数,该数据不参与通讯,仅仅是指定需要通讯的数据个数,最大范围255个。
编程能够定义通讯参数,这个没有问题。
但你的程序存在一些不合理性是上面我已经说明了VB100的含义,你在数据块定义的24是不合理的。从程序的含义中你的意思是发送由VB101开始的5个数据,而数据又再次定义了24(相当于发送自VB101开始的24个字节的数据),这样就存在矛盾了。
提问者对于答案的评价:
我也是在西门子找答案中看到的这一段程序。不知道我理解的对不对,请大侠指点。MOVB 5,VB100是发送的5个数据。在数据块里写的vb101 24;vb102 25;vb103 26;vb104 27;vb105 28这5个数据是给串口调试软件的。虽然数据能发送,但串口调试软件接收的也不是25,26,27,28啊?
最佳答案作者回复:
你修改串口调试软件中的显示格式就可以了。
原因:
如VB101=16#24,相当于10进制数的36,如果你串口软件没有选择对应的数据,可能就显示36.
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc126141.html