SIEMENS四川省西门子直流调速器,伺服电机一级代理商
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- 西门子一级代理商
- 触摸屏
- 变频器
- 伺服电机
- 西门子PLC
- 直流调速器
- 联系电话
- 18126392341
- 手机号
- 15267534595
- 联系人
- 梁涛
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)(注册地址)
- 更新时间
- 2024-12-22 09:10
西门子plc为例分析西门子modbus通讯地址问题
modbus地址实际上分为两种情况即plc作modbus主站,modbus地址和plc手册里的地址一与plc作从站,plc不用管什么modbus地址。
modbus地址实际上分为两种情况。下面以西门子s7-200/s7-200smart/和s7-1200为例来说明:
第*种情况:西门子plc作modbus主站,modbus地址和plc手册里的地址一致,例如作主站的s7-200的mbus_msg指令用于向modbus从站发送请求消息,和处理从站返回的响应消息。要读取从站(另一台s7-200)的i0.0开始的地址区时,它的输入参数addr(modbus地址)为10001。s7-200从站保持寄存器的v区起始地址为vb200时,要读取从站vw200开始的v存储区时,保持寄存器的地址是40001。
第二种情况:plc作从站,plc不用管什么modbus地址,等着主站来读写它的地址区就是了。
主站的计算机软件(例如dcs或组态软件)的编程人员需要编写实现modbus通信的程序,首先需要确定modbusrtu的报文结构。他们一般不熟悉plc,因此plc的编程人员往往需要和上位机软件的编程人员一起来讨论modbus的报文结构。
更容易出问题的就是报文里modbus地址与plc存储区地址的对应关系。曾经有工作人员做过的一个系统的上位机是专用的组态软件,通过分析geplc手册给出的crc的循环异或计算实例每一步的中间数据,编写出了crc计算的c语言程序。通过实验验证了modbus报文结构和crc的计算的可行性。
s7plc手册给出的modbus地址与modicon公司和ge公司plc使用的地址相同,是基于1的地址,即同类元件的首地址为1。而西门子plc采用的是基于0的地址,即同类元件的首地址为0。modbus报文中西门子plc的modbus地址也采用基于0的地址。
plc系统手册中的modbus地址的更高位用来表示地址区的类型,例如i0.0的modbus地址为10001。因为地址区类型的信息已经包含在报文的功能码中了,报文中s7-200的i0.0的modbus地址不是10001,而是0。报文中其他地址区的modbus地址也应按相同的原则处理。例如当s7-200从站保持寄存器的v区起始地址为vb200时,vw200对应的保持寄存器在报文中的modbus地址为0,而不是40001。