技术论坛

 200smar打开200程序后,自由口通讯报错

返回主题列表
作者 主题
沃特控
新手

经验值: 50
发帖数: 3
精华帖: 0
楼主    2020-05-09 17:24:51
主题:200smar打开200程序后,自由口通讯报错

zypump1.zip


    将214-2BD23-0XB8的程序直接下载到288-1SR20-0AA0中使后,200的自由口通讯程序正常使用但是200smart中就是报错:对端口0同时执行XMT/RCV指令。
    希望大神能指导下555~

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程序后,自由口通讯报错

这样应该就不会有问题了:

1



2


3


总感觉源程序怪怪的,为什么启动两个接收指令,还用时间脉冲控制

用中断不是很好嘛,在接收完成后中断程序发下一次请求的数据。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。