签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
zypump1.zip
将214-2BD23-0XB8的程序直接下载到288-1SR20-0AA0中使后,200的自由口通讯程序正常使用但是200smart中就是报错:对端口0同时执行XMT/RCV指令。 希望大神能指导下555~
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1622591&b_id=64&s_id=0&num=17
,看到了。
我下载试试。
好哒,谢谢大神
看看特殊寄存器赋值是否正确,波特率对吗,大概看下建议 1:既然已经连了发送完成,接受完成OB,主程序里可以仅处理流程,主程序里可以不写一句发送接收指令 2:自由口最自由灵活方式是字符中断,这个可以考虑。
大致看了一下,没有实际plc测试。
你按我图示修改试试,图示:
我修改的主要目的是:
你的发送指令由M1.0(M2.0)驱动的,而M1.5也有M1.0驱动的(主程序网络4处),这样的逻辑显的不够严谨。
这个问题的原因分析:
当第一次发送指令由M1.0驱动,执行XMT指令。当发送指令完成后,进入发送完成中断。而你在这个这个中断子程序中才复位M1.0,这样就有可能出现2个指令同时激活的可能。从你的描述上也可能看出,虽然程序看似“正常”,因为进入发送完成中断后,马上就可以纠正可能的发送指令M1.0的置位。当然,你还有M2.0还需要分析它的逻辑状况。我这里没有分析。
你试试将XMT指令放在初始化通讯的最后面,就是用SM0.1驱动的那段,目的是规避同时激活(XMT/RCV)指令。
另外,程序稍微再整理一下,逻辑不够严谨。如初始化均写到一起,赋值也同样写在一起,方便阅程序。
程序管理不够严谨,容易出现你不想要的问题。
我在4楼的程序可能仍然会报警,主要还是没有实际测试,因为该通讯是异步的。
建议你发送指令先按5楼的方式测试一下。
自由口通讯发送接收指令我一般是这样写的。
在发送完成中断中写接收指令,在接收完成中断中写发送指令。
而你的发送指令写在OB1,且触发XMT指令的M1.0及M2.0与接收完成指令存在plc周期的差异,另外XMT指令用沿触发。
测试看看,太晚了我还没测试
这样应该就不会有问题了:
1
2
3
总感觉源程序怪怪的,为什么启动两个接收指令,还用时间脉冲控制
用中断不是很好嘛,在接收完成后中断程序发下一次请求的数据。
,我知道这里一定会有爱好者出现的。
我一直感觉,让我看别人的程序是一件非常非常痛苦的事情,
我建议:
1)在OB1中定义好通讯初始化,赋值后,启动发送XMT;
2)在发送完成中断子程序中编辑接收指令;
3)在接收完成中断子程序中编辑发送指令。
这样,可以规避这个问题。
@sangshunyang:在原程序基本上修改虽然可以,但需要化一定的时间去认识原程序,到不如按自己的思路重新编辑快。
我测试了一下,用串口调试软件监控,第一次XMT发送指令可以的。
你这样测试一下,取消在OB1网络25中的M2.0触发XMT指令,改到中断_1子程序中,图示:
你测试一下,这样的控制是否可以。
我这样让你测试的先决条件是在接收指令完成前,必须给M2.0使能。
不然,还不能够这样简单的处理。
还是老错误,真是搞不懂为什么会这样哦
学习一下,谢谢。
学习了,谢谢
学习了,值得分享
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录