各位好,我有一个问题始终解决不了,就是我通过485与上位机串口助手通讯。
现在程序流程是:发送完成——跳入接收程序(SMW92消息定时器500ms,当接收不到消息后500ms跳出接收)——再次发送。这样实现了自己发送、接收、再发送等等。
但是我现在想通过串口助手发送控制这个过程,我无法控制它的启动、暂停、再启动的过程(当接收到串口助手的某个数时执行)。
请问各位这个程序有没有方法通过串口助手进行控制它的启停。
问题补充:
感谢你的解答,我是用串口助手发送一串数据AA....BB(最终的上位机使用LabVIEW编写软件)。我之前是也想断开XMT发送来实现,可是我来回试了一个多星期始终没实现,是我思路不对不太会编写。
请问WWCWWC老师,您能说一下您的这个方法该怎么编写吗(可否稍微具体一点)谢谢
图片说明:
最佳答案
串口助手本身没有这个功能,需要你人工做一个程序。
在串口调试软件中写一个数据,让PLC接收,当plc正确接收到这个数据,断开发送指令的使能;当需要恢复发送指令时,在串口调试软件中修改这个数据给plc,重新使能XMT指令。
补充问题回复:
首先让串口调试软件发送一个或者一串数据,目的是作为控制plc方式指令的使能。
1)当正确接收到禁止发送指令时,中断接收完成中断(中断分离),那么中断事件号23所连接的中断子程序被中止,也就无法实现发送指令XMT了。
2)将中断子程序1的XMT指令的无条件使能,SM0.0改为有条件使能,这个条件就是依据你接收指令RCV接收到的数据状态,什么时候禁止,什么时候释放。
如果采用中断禁止,那么当接收到释放命令时,需要重新激活中断事件号23的中断连接。
提问者对于答案的评价:
很感谢你的解答,
我在中断子程序INT_1中XMT前面将SM0.0改为(VB202是否=1)来执行(VB202为上位机发送的数据),可是我这错了,这样无法跳出INT_1,也接收不到数据了。
或者我在ATCH(INT_1)的前面加上“VB202是否=1”,可是无法停止发送。
感觉自己学的没入门,我好像没能理解和编出你说的思路。
不知你能否抽空帮忙指示一下“禁止发送指令”、“重新激活中断事件号23”..的我应该怎么编写。
耽误您的时间了,谢谢了
最佳答案作者回复:
这里回复是不太方便的,我有时间写一个程序验证一下,你关注论坛200smart版区的新帖。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc288071.html