作者 | 主题 |
---|---|
沃特控 新手 经验值: 50 发帖数: 3 精华帖: 0 |
楼主 2020-05-09 17:24:51
主题:200smar打开200程序后,自由口通讯报错 将214-2BD23-0XB8的程序直接下载到288-1SR20-0AA0中使后,200的自由口通讯程序正常使用但是200smart中就是报错:对端口0同时执行XMT/RCV指令。 |
holdkcsxyz 至圣 经验值: 12949 发帖数: 1803 精华帖: 22 |
3楼 2020-05-09 17:55:38
主题:回复:200smar打开200程序后,自由口通讯报错 看看特殊寄存器赋值是否正确,波特率对吗,大概看下建议 1:既然已经连了发送完成,接受完成OB,主程序里可以仅处理流程,主程序里可以不写一句发送接收指令 2:自由口最自由灵活方式是字符中断,这个可以考虑。 |
WWCWWC 至圣 经验值: 71501 发帖数: 7980 精华帖: 145 |
4楼 2020-05-09 18:04:25
主题:回复:200smar打开200程序后,自由口通讯报错 大致看了一下,没有实际plc测试。 你按我图示修改试试,图示: 我修改的主要目的是: 你的发送指令由M1.0(M2.0)驱动的,而M1.5也有M1.0驱动的(主程序网络4处),这样的逻辑显的不够严谨。 这个问题的原因分析: 当第一次发送指令由M1.0驱动,执行XMT指令。当发送指令完成后,进入发送完成中断。而你在这个这个中断子程序中才复位M1.0,这样就有可能出现2个指令同时激活的可能。从你的描述上也可能看出,虽然程序看似“正常”,因为进入发送完成中断后,马上就可以纠正可能的发送指令M1.0的置位。当然,你还有M2.0还需要分析它的逻辑状况。我这里没有分析。 |
WWCWWC 至圣 经验值: 71501 发帖数: 7980 精华帖: 145 |
5楼 2020-05-09 18:08:06
主题:回复:200smar打开200程序后,自由口通讯报错 你试试将XMT指令放在初始化通讯的最后面,就是用SM0.1驱动的那段,目的是规避同时激活(XMT/RCV)指令。 另外,程序稍微再整理一下,逻辑不够严谨。如初始化均写到一起,赋值也同样写在一起,方便阅程序。 程序管理不够严谨,容易出现你不想要的问题。 |
WWCWWC 至圣 经验值: 71501 发帖数: 7980 精华帖: 145 |
6楼 2020-05-09 18:14:46
主题:回复:200smar打开200程序后,自由口通讯报错 我在4楼的程序可能仍然会报警,主要还是没有实际测试,因为该通讯是异步的。 建议你发送指令先按5楼的方式测试一下。 自由口通讯发送接收指令我一般是这样写的。 在发送完成中断中写接收指令,在接收完成中断中写发送指令。 而你的发送指令写在OB1,且触发XMT指令的M1.0及M2.0与接收完成指令存在plc周期的差异,另外XMT指令用沿触发。 |
sangshunyang 侠圣 经验值: 4091 发帖数: 565 精华帖: 4 |
7楼 2020-05-09 23:47:12
主题:回复:200smar打开200程序后,自由口通讯报错 |
sangshunyang 侠圣 经验值: 4091 发帖数: 565 精华帖: 4 |
8楼 2020-05-10 00:27:28
主题:回复:200smar打开200程序后,自由口通讯报错 |