S7-1200与CU240B/E-2之间的Modbus RTU通讯

n

1 S7-1200与变频器的连接

1.1本例程的系统配置
本例程中用到的硬件: S7-1200(CPU 1214C)、G120 ( 控制单元CU240B-2 )、一台装有TIA Portal软件的PC机、CM1241模块、电源模块、标准RJ45网线。n

1.2 硬件连接n

1.2.1硬件连线
本例程中的硬件间的结构如下图所示:n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图1-1n

1.2.2 PLC与控制单元通信端口之间的连接
用电缆将CU240B-2 Modbus 通讯接口与PLC通信模块连接起来,如下图所示。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯    
图1-2n

2 变频器设置

2.1 地址设置
可以通过控制单元上的地址开关,也可以通过参数 P2021 或 STARTER 中“Control Unit / Communication / Field bus”页面来确定变频器的 Modbus-RTU 地址。
只有所有地址开关都设为“OFF”(0)时,P2021 或 STARTER 中的设置才有效。否则,Modbus-RTU 地址为地址开关所设置的地址。n

2.2 参数设置
除了设置地址之外,还需要对其他一些变频器的通信参数进行设置,才可以进行MODBUS通信。具体需要设置的参数如表2-1所示:n

表2-1n

参数 描述
P0015 = 21 变频器宏程序
选择 I/O 配置
p2030 = 2 现场总线协议选择
2: Modbus
p2020 现场总线波特率
设置范围是 4800 bit/s … 187500 bit/s,出厂为 19200 bit/s
p2024 Modbus 计时n

  • 索引 0:最大从站应答延迟:
    在该时间后,从站应答主站。n
  • 索引 1: 字符延时:
    指一个 Modbus 消息帧内,单个字符之间允许的最大延迟时间。 (即 Modbus 1.5 个字节标准的处理时间)n
  • 索引 2: 报文延时:
    指 Modbus 报文之间允许的最大延时。(即 Modbus 3.5 个字节标准的处理时间)
p2029 现场总线错误统计
指现场总线接口上接收错误的统计、显示
p2040 过程数据监控时间
指没有收到过程数据时发出报警的延时。
注: 该时间必须根据从站数量、总线波特率加以调整,出厂为 100 ms。

3 PLC组态和编程

3.1 创建项目
首先创建一个项目,点击创建新项目,输入名称,路径等信息。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-1n

3.2 硬件组态
按照新手上路的提示首先选择设备和网络,进行硬件组态。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-2n

点击添加新设备,添加相应型号的设备,修改设备名称,选择版本号,点击添加。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-3n

在弹出的设备与网络的右侧硬件目录中,找到通信模块-点到点-CM1241(RS485),加入CM1241通信模块。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-4n

双击设备视图中的RS485端口,设置端口组态,本例程配置如下图。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-5n

在左侧的项目树-设备-在线访问-Broadcom NetXtreme。。。(本例程PC机所使用的网卡),双击更新可使用的设备,搜索到连接的设备。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-6n

3.3 编程
在左边的设备中找到S7-1200/程序块,打开主程序(Main[OB1])。在右边的指令栏里选择通信/通信处理器/MODBUS,添加MB_COMM_LOAD和MB_MASTER。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-7n

在弹出的调用选项中,定义一个背景数据块。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-8n

使用同样的方法,再加入一个MB_MASTER模块,同样定义背景数据块。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-9n

分别按照图3-10、图3-11设置MB_COMM_LOAD和MB_MASTER模块。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-10n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-11n

其中,MB_COMM_LOAD与MB_MASTER指令的参数说明,请参考表3-1,表3-2。n

表3-1 MB_COMM_LOAD指令的参数n

参数 声明 数据类型 存储区 说明
REQ Input BOOL I、Q、M、D、L 在上升沿执行指令
PORT Input UINT I、Q、M、D、L 或常量 通信端口的 ID:
在设备组态中插入通信模块后,端口 ID 就会显示在 PORT 框连接的下拉列表中。 也可以在变量表的“常量” (Constants) 选项卡中引用该常量。
BAUD Input UDINT I、Q、M、D、L 或常量 波特率选择:
300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 76800, 115200
所有其它值均无效。
PARITY Input UINT I、Q、M、D、L 或常量 奇偶校验选择:
0 – 无
1 – 奇校验
2 – 偶校验
FLOW_CTRL Input UINT I、Q、M、D、L 或常量 流控制选择:
0 –(默认值)无流控制
1 – 通过 RTS 实现的硬件流控制始终开启(不适用于 RS485 端口)
2 – 通过 RTS 切换实现硬件流控制
RTS_ON_DLY Input UINT I、Q、M、D、L 或常量 RTS 延时选择:
0 -(默认值)到传送消息的第一个字符之前,激活 RTS 无延时。
1 至 65535 – 到传送消息的第一个字符之前,“激活 RTS”以毫秒为单位的延时(不适用于 RS-485 端口)。应用 RTS 延时必须与 FLOW_CTRL 选择无关。
RTS_OFF_DLY Input UINT I、Q、M、D、L 或常量 RTS 关断延时选择:
0 –(默认值)传送最后一个字符到“取消激活 RTS”之间没有延时。
1 至 65535 – 在发送消息的最后一个字符到“取消激活 RTS”之间以毫秒为单位的延时(不适用于 RS-485 端口)。应用 RTS 延时必须与 FLOW_CTRL 选择无关。
RESP_TO Input UINT I、Q、M、D、L 或常量 响应超时:
“MB_MASTER”允许等待从站响应的时间(毫秒) 如果从站在此时间内没有响应,则“MB_MASTER”将重复该请求,或者在发送了指定数目的重试后终止请求并返回错误。
5 ms 至 65535 ms(默认值 = 1000 ms)。
MB_DB Input VARIANT D “MB_MASTER”或“MB_SLAVE”指令的背景数据块的引用。 在程序中插入“MB_SLAVE”或“MB_MASTER”之后,数据块标识符会显示在 MB_DB 框连接的下拉列表中。
DONE Output BOOL I、Q、M、D、L 指令的执行已完成且未出错。
ERROR Output BOOL I、Q、M、D、L 错误:
0 – 未检测到错误
1 – 表示检测到错误。 在参数 STATUS 中输出错误代码。
STATUS Output WORD I、Q、M、D、L 端口组态错误代码

表3-2 MB_MASTER指令的参数n

参数 声明 数据类型 存储区 说明
REQ Input BOOL I、Q、M、D、L 请求输入:
0 – 无请求
1 – 请求将数据发送到 Modbus 从站
MB_ADDR Input UINT I、Q、M、D、L 或常量 Modbus RTU 站地址:
默认地址范围: 0 至 247
扩展地址范围: 0 至 65535
值“0”已预留,用于将消息广播到所有 Modbus 从站。 只有 Modbus 功能代码 05、06、15 和 16 支持广播。
MODE Input USINT I、Q、M、D、L 或常量 模式选择: 指定请求类型: 读取、写入或诊断:
有关详细信息,请参见 Modbus 功能表。
DATA_ADDR Input UDINT I、Q、M、D、L 或常量 从站中的起始地址: 指定 Modbus 从站中将供访问的数据的起始地址。 可在 Modbus 功能表中找到有效地址。
DATA_LEN Input UINT I、Q、M、D、L 或常量 数据长度: 指定要在该请求中访问的位数或字数。 可在 Modbus 功能表中找到有效长度。
DATA_PTR Input VARIANT M、D 指向 CPU 的数据块或位存储器地址,从该位置读取数据或向其写入数据。 对于数据块,必须使用“标准 – 与 S7-300/400 兼容”访问类型进行创建。
DONE Output BOOL I、Q、M、D、L 0: 事务未完成
1: 事务完成,且无任何错误
BUSY Output BOOL I、Q、M、D、L 0: 当前没有“MB_MASTER”事务正在处理中
1: “MB_MASTER” 事务正在处理中
ERROR Output BOOL I、Q、M、D、L 0: 无错误
1: 出错,错误代码由参数 STATUS 来指示
STATUS Output WORD I、Q、M、D、L 执行条件代码

3.4 下载
编译,确认无误后,点击下载。在弹出的“扩展的下载到设备”中,选择PG/PC接口类型,以及PG/PC接口。选择设备,并点击下载。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-12n

在弹出的下载预览中,查看将要覆盖的内容,选择统一下载,并点击下载。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-13n

3.5 监视
点击转到在线,并点击启动监视,此时即可通过PLC给变频器进行MODBUS通信。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图3-14n

4 MODBUS通信控制变频器

4.1 使用MODBUS通信控制变频器启停
如下图所示,打开Tag_1,使能MB_MASTER。使能完成之后,关闭Tag_1。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图4-1n

如图4-2,将MODE改为1(即写入数据),DATA_ADDR写入40101(主设定值寄存器号),DATA_PTR写入1000(给定值的写入值)。然后REQ使用一个脉冲沿来发送给定值。此时,变频器的给定值已经改为1000。
然后将DATA_ADDR写入40100(控制字寄存器号),DATA_PTR写入047E(停车),然后REQ使用一个脉冲沿来发送停车命令。再将DATA_ADDR写入40100(控制字寄存器号),DATA_PTR写入047F(启动),然后REQ使用一个脉冲沿来发送启动命令。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图4-2n

注意:
MB_COMM_LOAD使能完成之后,一定要将Tag_1关闭,否则MB_MASTER模块将无法使用。
变频器启动位需要一个上升沿,所以先给其停车命令,然后发送启动命令,利用上升沿来启动变频器。n

4.2 使用MODBUS通信修改和查看变频器参数
现在,以参数P1120加速时间为例,对参数的修改和查看进行讲解。
首先,进行读参数的演示。将MODE输入改为0(即读参数模式),将DATA_ADDR中写入40322(即加速时间的寄存器号),然后REQ使用脉冲沿来发送一个读请求。此时,可以接收到参数P1120中的数据位1000(即加速时间为10s)。n

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图4-3n

然后进行写参数:将MODE输入改为1(即写参数模式),将DATA_ADDR中写入40322(即加速时间的寄存器号),在DATA_PTR中写入500,然后REQ使用脉冲沿来发送一个写请求。此时,已经将500写入了参数P1120之中,加速时间改为5s。

S7-1200与CU240B/E-2之间的Modbus RTU通讯
图4-4

控制单元中的 Modbus 寄存器和对应的参数如下表所示:

S7-1200与CU240B/E-2之间的Modbus RTU通讯

S7-1200与CU240B/E-2之间的Modbus RTU通讯
表4-1 Modbus 寄存器和对应的参数

关键词
G120,CU240B-2,CU240E-2,Modbus RTU

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论