西门子200通讯modbus rtu求助 点击:516 | 回复:2



gspbug

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 46回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2011年5月12日
发表于:2016-03-31 21:32:35
楼主

各位高手好,我用PLC第一次接触通信。客户合同要求是使用modbus rtu通信,我这边下位机是西门子200。客户要求控制和读取输入输出还有模拟量等等。我看了很多这类的通信介绍,从站的设置也简单,从站首先是初始化,再执行从站命令就可以了。如下图


因为主站是DCS(我也不知道这样描述对不对),所以设置我也不清楚,不过既然协议一样,可能也和PLC主站设置类似。主站的情况我就不用理会。

问题在于协议上描述:Modbus地址总是以00001、30004之类的形式出现,从40001 - 49999是数据保持寄存器,对应PLC的V区,但是以字的形式。

问题1:但是我在从站程序会将需要通讯的数据都装入V区,如果我有5个位的数据要被主站读出,不到一个字也没关系吗?

问题2:我这里即有开关量又有模拟量装入V区,在初始化的时候两种数据是分开初始化吗?这里我感觉比较麻烦,是不是要分几次初始化?

问题3:在主站那边要读写一个位会怎么操作呢,比如有没有400001.0的操作?我不太理解

问题4:从站好像没有读取主站信息的功能,难道是主站写命令时从站的数据直接变化吗?

最后一个问题是DCS上位是用什么软件啊?谢谢各位!





tyfeixian

  • 精华:4帖
  • 求助:2帖
  • 帖子:14帖 | 50回
  • 年度积分:27
  • 历史总积分:1276
  • 注册:2006年8月02日
发表于:2016-04-09 22:21:20
1楼

问题1 : 可以单个位的的读取,

问题2: 装入v寄存器只要连续装入各个位置即可,例如VD0,VB4,V5.0,同一类型连续写入就可以。

问题3: 仔细看看modbus协议,4字节代表多位数读取或写入,1字节代表位读取,0字节代表位写入,例如40000,400004,100005.0,000005.0等

问题4:你的程序是server程序、属于从站,从站只能等待主站操作读取写入,且modbusrtu只能允许单主站读写,多主站读写就需要自行考虑令牌循环。

问题5:不知你说的DCS上位是什么意思,是指编程软件还是组态软件。

gspbug

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 46回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2011年5月12日
发表于:2016-04-18 22:59:43
2楼


回复内容:谢谢指教,我这几天看了协议又明白了很多

对: tyfeixian 问题1 : 可以单个位的的读取,问题2: 装入v寄存器... 内容的回复!



热门招聘
相关主题

官方公众号

智造工程师