首页 上一页 1 2 下一页 尾页

如何使用STEP7(TIAPortal)为SIMATICS7-1200建立MODBUS-RTU通讯 点击:10210 | 回复:29



wqwww520

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 390回
  • 年度积分:44
  • 历史总积分:1806
  • 注册:2011年10月04日
发表于:2016-12-22 14:36:22
楼主

概述
利用 CM 1241 RS485 和 CM 1241 RS232 通讯模块,SIMATIC S7-1200 可以实现点对点的通讯。 每个 SIMATIC S7-1200  控制器最多可以添加三个通讯模板 (+ 一个 RS485 通信板)。 利用集成在 STEP 7 (TIA Portal) 中的 MODBUS  库文件,可以定义每个通讯模块为 MODBUS 主站或 MODBUS 从站。如果选择 MODBUS 主站,可以通讯的对象

  • 使用 CM 1241 RS232  通讯模块只能与一个从站通讯 (由于物理限制)。

  • 允许最多与 32 个从站的相继地通讯使用 (通过 CM 或 CB 1241 RS485)。

通过一个由  STEP 7 (TIA Portal) V11 创建的范例去介绍如何使用 CM 1241 RS485 通讯模块与多个从站进行通讯。


说明
提供一个 MODBUS 主站和一个 MODBUS 从站间的通讯例程。通讯可以交替进行读写,将数据写入从站寄存器 (MODBUS 功能码为 16) 和读取从站寄存器的数值 (MODBUS 功能码为 03)。 因为 RS485 接口是两线制 (半双工模式),故数据读写必须是连续控制的。 同理,在这两种操作 (这里指读和写) 之间也可以改变要寻址的从站地址,因此,主站和多个从站之间的数据交换是可以实现的。 


图. 01

多个 CM 1241 RS485 通讯模块之间可以使用 PROFIBUS 电缆相互连接。 最多可以将 31 个 MODBUS 从站使用 PROFIBUS 电缆连接到主站。使用 STEP 7 (TIA Portal)  配置组态,使用交换机 CSM 1277 可以将程序下载至控制器。

MB_COMM_LOAD
MODBUS 通讯中,双方 (主站和从站) 都应该调用配置 MB_COMM_LOAD 指令。


图. 02

MB_COMM_LOAD 指令可以完成如下功能:选择通讯模块、设定通讯参数、设置与主站或从站的连接参数。必须在第一个程序执行周期中调用 MB_COMM_LOAD 指令 (可以使用硬件设置中的系统标志位 M1.0 来实现或在启动 OB 100 中调用)。在硬件组态中插入通讯模块后,可以在 PORT 参数中选择通讯模块的符号名。 通信参数波特率 (传输速率) 和奇偶校验方式在所有节点中必须设定相同。STEP 7 (TIA Portal) 设备视图中关于 RS485 的端口特性的设置与此不相干。MB_DB 参数用于填写主站或从站指令的背景数据块,因此也就说明了通讯模块 (PORT 参数指定的) 是 MODBUS 主站还是从站。


MB_MASTER
使用 MB_MASTER 指令可以定义 MB_COMM_LOAD 指令中选定的通讯模块为 MODBUS 主站。  


图. 03

MB_MASTER 指令可以用来选择要寻址的 MODBUS 从站的地址、功能码和设定本地的数据存储区。下表解释了具体参数。 

参数描述
REQ使能通信。
MB_ADDRMODBUS-RTU 站地址。
MODE选择传输方向 ("0" = 读, "1" = 写或附加的诊断功能)。
DATA_ADDR指定 MODBUS 的起始地址。
DATA_LEN指定 MODBUS 数据长度。
DATA_PTR定义了主站发送和接收的本地数据区。DATA_PTR 参数必须是全局数据块,禁用“仅符号访问”选项。

"MB_MASTER" 必须循环周期调用 (例如:OB1) 

MB_SLAVE
使用 MB_SLAVE 指令可以定义 MB_COMM_LOAD 指令中选定的通讯模块为 MODBUS 从站。


图. 04

MB_SLAVE 指令定义 MODBUS-RTU  站地址,并指定本地数据存储区作为对应的保持寄存器数据传送。
 

参数描述
MB_ADDRMODBUS-RTU 站地址。
MB_HOLD_REG从站的保持寄存器。MB_HOLD_REG 必须是全局数据块,禁用“仅符号访问”选项。

当进行多寄存器 (字) 传输时,在MB_HOLD_REG 中定义数组、结构或覆盖主站 (DATA_ADDR 和 DATA_PTR) PLC 数据类型的参数符号名。数组、结构或PLC数据类型的第一个字对应的MODBUS保持寄存器起始地址 40001。

通过指令的输入和输出功能或访问相关背景数据块进行参数转换。

范例项目
在主站项目中,交替的读写从站寄存器是通过一个时序标志完成的。


图. 05

  1. 初始化:调用 MB_COMM_LOAD 指令。.

  2. 步骤 1:调用 MB_Master,将需要发送的数据填写到 DATA_PTR,并执行使能(REQ = 1),(MODE = 1) 将数据写入从站。

    • MB_MASTER 指令返回正在执行 (BUSY),转至步骤 2完成。

    • MB_MASTER 指令返回是肯定的结果 (DONE),转至步骤 3完成。

    • 复位 MB_MASTER 指令的执行 (REQ = 0)。


  3. 步骤 3:读取从站数据,需要将通讯参数 (MODE = 0) 传输到 MB_MASTER。

  • 步骤 4 的执行和转换,与步骤 1 一样。

  • MB_MASTER成功反馈 (DONE) 后,从 DATA_PTR 读取的数据必须保存 (copied)。

功能的执行 (这是读取从站存储的数据) 如下图所示。


图. 06

通过修改 MB_ADDR  参数 (参见网络7) 可以访问不同的从站地址。

如果出现错误, (ERROR) 状态被存储在 ERROR_STATUS 标签处。 有关状态的评估可通过 F1 打开 TIA Portal 在线帮助查看详细信息。


正在下载,请等待……
下载附件需1积分!



楼主最近还看过



plt1969

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 33回
  • 年度积分:34
  • 历史总积分:171
  • 注册:2011年5月10日
发表于:2020-04-02 21:08:43
21楼

谢谢楼主,学习使人快乐!

luanshiqiye

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 599回
  • 年度积分:0
  • 历史总积分:73
  • 注册:2013年2月26日
发表于:2020-04-07 09:47:44
22楼

谢谢大神正在学习中非常感谢


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页