s7-200自由口通信 无起始字符和结束字符,SMW87如何设置? 点击:6148 | 回复:6



hncsdxw

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:6帖 | 25回
  • 年度积分:0
  • 历史总积分:98
  • 注册:2004年6月28日
发表于:2015-09-15 23:46:05
楼主

  曾有人发过的但没人回答,我也遇到了此问题:使用S7-200自由口进行Modbus Rtu通讯,设定通讯控制字格式SMB30为16#09 ,即1位起始位、8位数据位、一位停止位、无校验,波特率9600。由于Modbus Rtu通讯帧格式里没有起始位和停止位符号,所以设定接收信息控制字SMB87为16#94,即允许端口0接收信息、无起始符、无结束符、采用检测SMW90设定的3.5T字符的静止时间来判断消息帧状态,开始接收信息。设定字符间定时器为SMW92中的时间来判断PLC接收消息帧信息结束。不使用中断条件检测起始信息。       这里的Modbus Rtu通讯帧里的1个字符(异步10位,8位数据位+2位停止位)时间计算采用1/9600*10=1.04ms,设定字符间定时器SMW92为1ms,设定通讯口空闲检测时间为SMW90为5ms。上面的字符间隔时间SMW92和通讯口空闲时间SMW90计算的对不对?由于使用了字符中断ATCH时间8,检测端口0接收到SMB2中的数据,请问字符间隔定时器SMW92和端口空闲检测时间SMW90的时间值需要延长么? 请大家帮助我一下,谢谢。

  没有起始和结束字符,例如命令XMT 发送01 03 0F A5 00 04 57 3E  ,SMW87设为16#94 但是RCV指令不能收到数据。因命令和地址格式不符不能用200的MODBUS库,请同行来指导一下该如何设置?多谢!




不死的金丝楠

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2015-09-16 08:30:09
1楼

西门子不论搞什么都需要填一大堆数据,我实在怕怕

leisurefly

  • 精华:0帖
  • 求助:1帖
  • 帖子:7帖 | 1256回
  • 年度积分:21
  • 历史总积分:8350
  • 注册:2012年5月22日
发表于:2015-09-16 17:27:31
2楼

同求这方面的程序案例呀,经验共享嘛!

湛蓝小尔

  • 精华:1帖
  • 求助:142帖
  • 帖子:180帖 | 473回
  • 年度积分:14
  • 历史总积分:1399
  • 注册:2014年2月19日
发表于:2015-09-17 22:23:45
3楼

被楼主吸引了,不过,我很好奇,那楼主为什么不用plc自带的MODBUS 协议通讯呢,用串口读数据,再解析

afcp071

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 89回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2013年3月07日
发表于:2015-09-30 21:43:46
4楼

设置是对的,可以直接用RCV指接收,发送完成进入事件9把你想读取的信息数据标志位,并启动RVC,平时的时候不想读取的东西,或者写入时不要启动RCV,启动RVC之后,用定时器把它关闭,这样才能继续发指令出去.

ntplc2017

  • 精华:0帖
  • 求助:0帖
  • 帖子:38帖 | 375回
  • 年度积分:0
  • 历史总积分:685
  • 注册:2018年5月11日
发表于:2018-08-24 09:41:32
5楼

SMB2的使用是字符中断, SMW90  SMW92的使用是RCV指令的应用, 两个使用不一样的,建议SMW92设置为2ms,注意控制好收发切换的时序。


自恋洪城

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 596回
  • 年度积分:0
  • 历史总积分:538
  • 注册:2016年11月05日
发表于:2018-08-24 14:51:01
6楼

感谢楼主分享!新手的福音!


热门招聘
相关主题

官方公众号

智造工程师