G120XA与S7-1200的Modubus通信实战(二)

3. PLC组态及Modbus组态

3.1 组态

在博图中组态硬件,CPU和RS485通信模块。
在这里插入图片描述

如图,在组态界面对RS485进行通信连接的设置,与变频器保持一致即可。

3.2 Modbus指令的配置

软件里面提供了两种指令——Modbus(RTU)和Modbus,我这里用的是Modbus(RTU),毕竟用新不用旧。
建议大家提前看一下官方的教学视频——《S7-1200和G120 MODBUS RTU通讯》,虽然只提供了手动读写从站数据的演示,但对理解一下运行机理还是有点帮助的。这个视频演示的是G120的变频器,启停这一块跟G120XA有所不同。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4AJbwnZt-1649056496607)(:/b85d69a94c9b415f846986316bc0a0a5)]

3.2.1 Modbus_Comm_Load

Modbus_Comm_Load: 对 Modbus 的通信模块进行组态 。
创建一个FC块,加入Modbus_Comm_Load指令,根据每个参数的说明和数据类型进行赋值。
在这里插入图片描述

REQ:当此输入出现上升沿时,启动该指令。正常情况下Modbus_Comm_Load指令只需要在PLC启动的时候激活一次对通信模块进行组态即可。
PORT:硬件标识符
早期版本的博图会让你在硬件组态界面查看,但较新版本的看不到了,可以直接在列表中找,一看就能找到。
早期硬件标识符查看方式
在这里插入图片描述
BAUD:波特率,9600
PARITY:奇偶校验

0 – 无
1 – 奇校验
2 – 偶校验

选2
RESP_TO:响应超时:

5 ms 到 65535 ms - Modbus_Master 等待从站响应的时间(以毫秒为单位)。如果从站在此时间段内未响应,Modbus_Master 将重复请求,或者在指定数量的重试请求后取消请求并提示错误。

从站不多的话默认的1000ms即可。当从站比较多的时候,需要酌情减小,比如说20个从站依次轮询,其中10个未上电或有其他问题,那读一轮数据就需要 10x1000ms + 10x正常通信时间 > 10s,写一轮数据又是10s+。
MB_DB

对 Modbus_Master 或 Modbus_Slave 指令的背景数据块的引用。
MB_DB 参数必须与 Modbus_Master 或 Modbus_Slave 指令的(静态,因此在指令中不可见)MB_DB 参数相连。

这个在后面创建了Modbus_Master 或 Modbus_Slave 指令后就可以选,操作如下:
在这里插入图片描述
还有一个很重要的必须要改却藏得有点深的参数,也是官方给用户留的坑:

Modbus_Comm_Load 数据块变量

变量数据类型标准标准
MODEUSInt0工作模式有效的工作模式包括:
0 = 全双工 (RS232)
1 = 全双工 (RS422) 四线制模式(点对点)
2 = 全双工 (RS 422) 四线制模式(多点主站,CM PtP (ET 200SP))
3 = 全双工 (RS 422) 四线制模式(多点从站,CM PtP (ET 200SP))
4 = 半双工 (RS485) 二线制模式 1)
1) 使用 PROFIBUS 电缆连接 CM 1241 的 RS485 时所需的设置

具体在这个位置修改:
在这里插入图片描述

3.2.1 Modbus_Master

Modbus_Master: 作为 Modbus 主站进行通信
在这里插入图片描述

参数含义如下,每一个都需要了解。需要注意的是,对G120XA变频器,DATA_LEN长度只能为1。如果想要读写多个参数,只能通过改变DATA_ADDR来进行新一轮的通信。
在这里插入图片描述
我这里接口用的都是PLC变量,如果有掉电保持等特殊需求,也可以采用DB块。

这里解释一下几个参数对应变频器的实际意义:
“modbusMaster_ADDR”:对应之前5个变频器设定好的从站地址——1、2、3、4、5.
“modbusMaster_DATA_ADDR”:要读写的从站数据起始地址,变频器操作说明里面有变频器数据的映射表,这里我们只用到控制字和状态字的数据。

寄存器描述访问
40100控制字R/W
40101主设定值R/W
40110状态字R
40111主实际值R
控制字 40100
这个控制字在G120XA的很多官方文献中都有很冲突的解释。
《G120XA 宏51 Modbus RTU 控制》中这么说:

宏51 功能描述:
起停控制:电机的起停通过数字量输入DI0 控制,DI0 信号断开时电机自由停车。

然而《G120XA变频器宏功能手册》里面又这么说:

启停控制:变频器的启动停止通过Modbus 通讯控制,控制字寄存器地址为40100,常用控制命令如下:
变频器就绪/变频器OFF1停车 047E(16进制)
变频器启动 047F(16进制)
变频器OFF2停车 047C(16进制)
变频器反向启动 0C7F(16进制)
变频器故障故为 04FE(16进制)

我这里都实践了一下,发现,变频器上电后,需要先给40100写入一次047E,变频器才会进入接通就绪状态,然后接通和断开DI0是可以控制变频器的启停的,写入047F无法启动变频器。
状态字 40110
一般情况下我们主要看里面的0~3位,具体看实际需求。后面实际运行时会展示一下其数值变化。
在这里插入图片描述
主设定值 40101

速度给定寄存器地址为40101,上位机发送16进制的4000 hex(十进制为16384)对应100%转速,对应参考转速p2000的值。

文档解释得很清楚了啊,这个值用来控制变频器转速,0~ 16384对应0~100%转速,后面编程里面要用到。
主实际值 40111
与主设定值相对应,是变频器实际输出的反馈,0~ 16384对应0~100%转速。

这里整体的组态基本上就完成了,下一步就开始编写读写程序了。
G120XA与S7-1200的Modubus通信(三)

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值