level 4
monstermjq
楼主
小弟新手,在做一个RS指令的小程序。本来已经实现了,可是奇怪的是,过一段时间再测试,就可能出错。同样一段程序,有时候PLC发出来的就是我设计好想要的,有时候就明显不是。不知道是哪出了问题。请各位帮忙看一下。
程序如下:

就是想通过RS指令,将7个字节通过PLC的COM2 485接口传送给外部设备,不需要接收返回数据。波特率2400,数据长8位,1位停止位,无校验。用串口调试助手监控PLC COM2接口发出的数据。
按理说,我用串口助手接收到的应该是FF 01 00 04 FF 00 04.如下图,这是我想要的,也确实做出来了

然而,我出去吃个饭回来,就发现突然不对了,变成了下面这样

然后偶然间发现修改RS指令最后一个操作数(即返回数据笔数)会得到不同的结果。
比如下图:

所以有以下几个问题请教各位
1.我的程序是不是有错误,错误在哪,为什么同样的程序结果不一样。
2.RS指令最后一个操作数是接收返回数据的笔数,如果不需要接收可以设置为K0,PLC内置手册上面是这么说的。我最开始也是设置的K0,程序也成功了,但是后来出现上面的错误之后,就有个奇怪的现象,只要设置成K0,即便是发送的数值是我想要的,也会是下图这样,而不是第一张图的样子。按理说,这个操作数应该不会影响传送出去的数据吧?

3.我查阅资料得知M1122送信请求寄存器是每次送信都要手动置位,因为系统在送信后会自动复位。那么M1123,M1127的工作情况求各位给详细说明一下,网上资料说的都不清楚。
2018年09月30日 06点09分
1
程序如下:

就是想通过RS指令,将7个字节通过PLC的COM2 485接口传送给外部设备,不需要接收返回数据。波特率2400,数据长8位,1位停止位,无校验。用串口调试助手监控PLC COM2接口发出的数据。按理说,我用串口助手接收到的应该是FF 01 00 04 FF 00 04.如下图,这是我想要的,也确实做出来了

然而,我出去吃个饭回来,就发现突然不对了,变成了下面这样
然后偶然间发现修改RS指令最后一个操作数(即返回数据笔数)会得到不同的结果。比如下图:

所以有以下几个问题请教各位1.我的程序是不是有错误,错误在哪,为什么同样的程序结果不一样。
2.RS指令最后一个操作数是接收返回数据的笔数,如果不需要接收可以设置为K0,PLC内置手册上面是这么说的。我最开始也是设置的K0,程序也成功了,但是后来出现上面的错误之后,就有个奇怪的现象,只要设置成K0,即便是发送的数值是我想要的,也会是下图这样,而不是第一张图的样子。按理说,这个操作数应该不会影响传送出去的数据吧?

3.我查阅资料得知M1122送信请求寄存器是每次送信都要手动置位,因为系统在送信后会自动复位。那么M1123,M1127的工作情况求各位给详细说明一下,网上资料说的都不清楚。