关于RTU模式下RS指令的求教 点击:940 | 回复:3



swj873

    
发表于:2012-05-08 15:36:08
楼主
求助帖5分-已结帖
小弟最近买了一款仪表,是用RTU模式下通讯的,用232转485的通讯模块通讯上没问题,在波特率9600数据位8校验位0停止位1的协议下,发送16进制的字符串01 03 00 02 00 02 65 CB  则在读数为零的情况下收到01 03 04 00 00 00 00 FA 33一切正常,但是用PLC进行通讯时,发送指令却得不到回复,无奈之下只能怀疑程序问题,但是检查了好久都看不出来,请各位大虾帮忙鉴定下 ,谢谢!


楼主最近还看过



yjig

  • 精华:2帖
  • 求助:6帖
  • 帖子:110帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2012-05-08 17:06:43
1楼
尝试一下,将RS指令的信号M1↑改为普通驱动信号。

ljbcompany

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 1289回
  • 年度积分:0
  • 历史总积分:5847
  • 注册:2011年4月24日
发表于:2012-05-09 11:38:58
2楼

首先确认仪表的通讯格式与PLC的通讯格式是否一致?可以用串口调试助手测试一下!另外建议加长或取消通讯逾时,发送命令的数据长度是D0-D8,上面预先填入的数据少了一个?而接收区为D30开始的16个连续数据寄存器。还有,C0=1的情况?

RTU采用CRC校验,算法很复杂;建议使用台达自带的小工具或CRC指令来计算出正确的校验码!<“帮助菜单”/“辅助编程”- LRC/CRC产生器>

战清石

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 70回
  • 年度积分:0
  • 历史总积分:656
  • 注册:2009年10月07日
发表于:2012-05-09 22:26:05
3楼
rs指令,不可用脉冲驱动!建议楼主将rs指令单独驱动。
SSI ļʱ