- AIRIOT物联网平台开发框架应用与实战
- 袁宁主编
- 4769字
- 2025-02-23 10:39:28
3.4 基于Modbus TCP的远程数据采集及控制
本节基于Modbus TCP及ModSim32模拟软件介绍数据采集与控制功能,并实现电机状态监控仿真。
3.4.1 远程数据采集
1.模型添加及配置
(1)模型添加及基本信息设置
添加“电机”“轴承”“绕组”三个模型,并设置“轴承”和“绕组”为电机的子模型。“电机”“轴承”“绕组”的基本信息设置分别如图3-2、图3-3和图3-4所示。
图3-2 “电机”基本信息设置
图3-3 “轴承”基本信息设置
图3-4 “绕组”基本信息设置
模型基本信息设置完成后的模型列表如图3-5所示。
图3-5 模型基本信息设置完成后的模型列表
(2)模型设备配置
由于“电机”为“轴承”和“绕组”的父模型,因此,先分别进行“轴承”和“绕组”设备配置,最后进行“电机”设备配置。
1)“轴承”模型设备配置。“轴承”模型设备配置中驱动配置如图3-6所示,设备驱动选择Modbus/TCP,驱动配置下设备IP为服务器物理IP,端口为502,站号为2,由于有些设备点表比设备实际地址小1,勾选“自动化地址”后会自动减1,实现设备点表和设备地址一致。
图3-6 “轴承”模型设备配置中驱动配置
添加“X轴振动烈度”“Y轴振动烈度”“轴承温度”3个数据点,“轴承”数据点关键信息如图3-7所示,读取区域均为“3”,表示读取“保持寄存器”;数据类型“FloatBE”表示浮点数,低位在前;寄存器个数均为2,表示每个数据点需2个寄存器存储数据;偏移地址分别为1、3和5分别对应3个数据点的起始地址;烈度单位为mm/s,小数位数2,温度单位为℃,小数位数1。
图3-7 “轴承”数据点关键信息
2)“绕组”模型设备配置。“绕组”模型设备配置中驱动配置如图3-8所示,不同模型对应不同资产,因此站号不同,“绕组”模型站号为3,其余配置同“轴承”模型。
图3-8 “绕组”模型设备配置中驱动配置
添加“A相电压”“B相电压”“C相电压”“A相电流”“B相电流”“C相电流”6个数据点,“绕组”数据点关键信息如图3-9所示,读取区域均为“3”,表示读取“保持寄存器”;数据类型“FloatBE”表示浮点数,低位在前;寄存器个数均为2,表示每个数据点需2个寄存器存储数据;偏移地址1、3、5、7、9和11分别对应6个数据点的起始地址;电压单位为V,小数位数1,电流单位为A,小数位数2。
图3-9 “绕组”数据点关键信息
3)“电机”模型设备配置。“电机”模型设备配置中驱动配置如图3-10所示,站号设置为1,其余配置同“轴承”模型。
图3-10 “电机”模型设备配置中驱动配置
添加1个“起停”数据点,表示电机起停状态,“电机”数据点关键信息如图3-11所示,读取区域为“1”,表示读取“线圈状态”;数据类型“UInt8”表示无符号整型;寄存器个数为1,表示该数据点需1个寄存器存储数据;偏移地址“1”对应该数据点的地址;没有单位和小数点。
图3-11 “电机”数据点关键信息
在“计算节点”菜单下勾选“自动继承子模型数据”,以继承“轴承”模型和“绕组”模型的数据点,“电机”计算节点配置如图3-12所示。
图3-12 “电机”计算节点配置
在“参数列表”下添加“参数显示列”,包括名称、编号及所有参数,添加完后的参数列表如图3-13所示。
图3-13 添加完后的参数列表
2.资产添加及配置
在“电机”模型下添加1个电机资产,名称“电机1”,编号“DJ01”;在“轴承”模型下添加1个轴承资产,名称“轴承1”,编号“ZC01”;在“绕组”模型下添加1个绕组资产,名称“绕组1”,编号“RZ01”。设置“轴承1”和“绕组1”为“电机1”的子资产,“轴承1”“绕组1”和“电机1”基本信息如图3-14所示。由于模型中已经配置了驱动及数据点,资产无须再配置。
图3-14 “轴承1”“绕组1”和“电机1”基本信息
3.参数汇总
为了便于观察数,添加电机参数汇总,如图3-15所示。
图3-15 电机参数汇总
4.ModSim32模拟仿真
(1)ModSim32简介
Modbus采用主从式通信,日常应用较多的是Modbus RTU和Modbus TCP两种协议,在开发过程中需经常用到Modbus调试工具,最常用是ModScan32和ModSim32,ModScan32 用于模拟主设备,ModSim32用于模拟从设备。此外,还有Modbus Master和Modbus Slave等。本书采用ModSim32模拟从设备。
(2)ModSim32通用设置
ModSim32初始界面如图3-16所示,有File、Connection、View和Help四个菜单。单击File→New新建模拟,新建模拟后界面如图3-17所示,界面中Device Id为站号,默认值1,MODBUS Point Type为数据点类型,默认为03即保持寄存器,Address为数据点地址,默认值0100,Length为数据长度,默认值100。用户可根据实际应用修改上述参数。此外,菜单栏增加Display选项,用于设置显示数据(Show Data)或数据流(Show Traffic)以及数据格式,数据格式包括二进制(Binary)、十进制(Decimal)、十六进制(HEX)、长整型(Long Integer)等,ModSim32将以设定的数据格式进行发送和接收。
图3-16 ModSim32初始界面
图3-17 新建模拟后界面
(3)电机状态监控中ModSim32的设置
根据上述设置,电机状态监测中共有三个从站,“电机1”站号为1,有一个无符号整形数据点“起停”;“轴承1”站号为2,有“X轴振动烈度”“Y轴振动烈度”“轴承温度”3个数据点,数据类型均为浮点数,低位在前;“绕组1”站号为3,有三相电压和三相电流共6个数据点,数据类型均为浮点数,低位在前。因此需创建3个模拟对应不同的从站,分别如图3-18、图3-19和图3-20所示。双击相应数据点可设置数据值,“绕组1”资产从站模拟中40001数据设置示例如图3-21所示,Value为设定值,填入设定值后单击“Update”按钮即可更新数据。数据支持自动模拟,单击“Auto Simulation”按钮弹出自动模拟设置窗口,勾选“Enable”,填写完相应信息后,单击“OK”按钮即可完成自动模拟设置。本例中除了“起停”,均采用自动模拟。
图3-18 “电机1”资产从站模拟
图3-19 “轴承1”资产从站模拟
图3-20 “绕组1”资产从站模拟
图3-21 “绕组1”资产从站模拟中40001数据设置示例
(4)电机参数汇总
ModSim32设置完成后,打开AIRIOT系统,在系统操作中重新加载Modbus TCP。然后打开前台“电机参数汇总”页面,即可实时查看电机数据点,电机参数汇总数据点实时显示如图3-22所示。至此,完成一台电机状态监控仿真。
图3-22 电机参数汇总数据点实时显示
(5)设备调试
设备调试是AIRIOT的重要功能之一,可以实时查看数据收发状态,打开“仪表调试”页面,单击图标,勾选要调试的资产,即可显示各资产数据收发情况,“仪表调试”页面如图3-23所示。“轴承”调试信息示例如图3-24所示,显示了两个采集周期的采集指令及收到的数据和数据解析。
图3-23 “仪表调试”页面
图3-24 “轴承”调试信息示例
仪表调试右上角图标功能如下。
1)连接状态标识:表示设备是否连接,连接为绿色,否则为灰色。
2)查询:单击弹出查询窗口,输入信息可查询。
3)调试的起动和停止:鼠标悬停,弹出起动和停止状态,单击可切换状态。
4)滚动显示:设置自动滚动和不滚动(图标为
),默认为滚动状态,信息自动滚动,单击可切换。
5)清除日志:单击可清除调试窗口内的日志信息。
6)删除调试设备:单击可删除当前调试设备,若要查看,需再次添加。
除上述功能外,仪表调试还支持数据转换和数据解析,选中要转换或解析的数据,弹出“进制转换”和“数值解析”对话框,单击“进制转换”,可进行十进制、二进制和十六进制之间的转换,单击“数值解析”弹出解析下拉列表,选择相应项可进行解析,数据解析示例如图3-25所示。
图3-25 数据解析示例
3.4.2 远程控制
1.远程起停控制
AIRIOT可直接控制PLC地址或根据一定协议发送指令实现设备远程起停控制。下面通过ModbusTCP发送指令实现电机起停控制。
(1)添加指令选中“电机”模型,单击“设备配置”→“指令”下图标,弹出添加指令窗口,如图3-26所示,默认名称为“指令×”,×表示当前指令号,如已添加4个指令,则×为5。
1)名称。一般根据功能自定义,如起动电机、停止电机、起停电机、转速控制等。
2)添加指令。当执行的为固定值0和1时,直接添加指令即可,单击指令右侧图标,可添加指令。“起动电机1”指令示例如图3-27所示。
图3-26 添加指令窗口
图3-27 “起动电机1”指令示例
①名称:“起动电机1”,添加1条,即“指令1”。
②写入区域:即指令写入区域,包括线圈状态及保存寄存器两种选择,用户根据设备的具体信息进行选择。此处为“线圈状态”,
③偏移地址:输入内容为阿拉伯数字,不可以为负数,用户根据设备的具体信息填写,此处为“1”。
注意:写入区域及偏移地址与“电机1”数据点“起停”的定义一致时,方可控制“电机1”的起停。
④数据类型:指写入指令的数据类型,包括布尔值、数值以及字符串三种,用户根据实际情况进行选择。电机起停只有两种状态,因此数据类型设置为“【Boolean】布尔型”。
⑤绑定表单项:若需要绑定表单项,要在当前输入框中输入已经添加完成的表单项的名称,名称必须与参数名保持一致。图3-27中不绑定表单项。
⑥默认写入值:一般情况先默认写入值不需要进行特殊设定,此处“1”表示默认起动电机。
设置完成后单击右下角“确定”按钮,完成指令“起动电机1”的添加。同理,可添加指令“停止电机1”,默认写入值为“0”,表示停止电机。指令配置完成后“指令”栏如图3-28所示,在“指令”栏下方出现两条指令,分别为“起动电机1”和“停止电机1”,单击下方“保存”按钮,保存配置。
图3-28 指令配置完成后的“指令”栏
(2)删除指令
单击指令编辑栏右上角图标,可删除当前指令。
(3)调试演示
配置完成后,首先单击“系统维护”→“系统操作”→“Modbus/TCP重新加载”,完成协议重新加载。然后单击“系统维护”→“设备调试”,打开设备调试页面并添加调试设备“DJ01”。“DJ01”调试界面如图3-29所示,光标置于“发送指令”按钮处,出现“起动电机1”和“停止电机1”两个按钮,单击“起动电机1”按钮,发送起动电机1指令,弹出提示“发送命令成功”,此时“DJ01”调试界面及ModSim相应值均变为1,表示电机已起动。单击“起动电机1”按钮后“DJ01”调试界面及ModSim相应值如图3-30所示。单击“停止电机1”按钮,可停止电机1。
图3-29 “DJ01”调试界面
2.电机转速控制
AIRIOT还可直接通过PLC地址或根据一定协议发送指令实现设备远程控制。下面通过Modbus TCP发送指令实现电机转速控制。
图3-30 单击“起动电机1”按钮后“DJ01”调试界面及ModSim相应值
(1)添加转速数据点
在“电机1”模型下添加数据点“转速”,“转速”数据点定义如图3-31所示。
图3-31 “转速”数据点定义
(2)添加指令
打开添加指令窗口,添加“转速控制1”指令,为了自由设置转速值,需添加表单项,转速控制指令表单项配置如图3-32所示。
图3-32 转速控制指令表单项
1)参数名。指令调用时需要的参数名称,命名规则为汉字,参数名为二次确认对话框中显示的名称信息,此处为“转速”。
2)数据类型。指表单项写入设备的数据类型,包括数值、布尔值、字符串。
3)表单类型。表单类型为限定好的选项,包括默认、日期选择器、时间选择器和电子邮件输入框,用户根据自己的需求进行选择即可,此处为“默认”。
4)选择项值。选择项值为阿拉伯数字,用于设定可选的变化值,可根据实际需要确定是否需要选择项。为了实现转速自由控制,此处不设定选择项值。
5)选择项文字。与设定的选择项值的指令中文名称一一对应,当添加多个时,指令对应可以通过下拉列表进行选择。
6)默认值。默认值一般不写或者写0,为了防止出现事故,默认值一般不写。
7)缩放比例。数值输入及编译后的缩放数值比例。
8)数值定义。与缩放比例配合使用,表示线性放缩的数值范围。
“转速控制1”配置完成后“指令”栏如图3-33所示,在“指令”栏下方出现“转速控制1”,如图3-34所示,单击下方“保存”按钮,保存配置。
图3-33 “转速控制1”配置完成后的“指令”栏
图3-34 “指令”栏下方出现“转速控制1”
(3)调试演示
配置完成后,打开“DJ01”调试界面,光标置于“发送指令”按钮处,出现“起动电机1”“停止电机1”“转速控制1”三个按钮,单击“转速控制1”,弹出“命令参数”窗口,如图3-35所示,输入转速值,如1800,单击“执行”按钮,弹出“发送命令成功”提示,此时“DJ01”调试界面及ModSim相应值均变为1800,表示电机转速为1800,实际上这里设置的电机转速为给定值,电机控制系统接收到给定值之后执行相应转速控制动作,使电机转速保持在1800。转速设置为1800后调试界面及ModSim相应值如图3-36所示。
图3-35 “命令参数”窗口
图3-36 转速设置为1800后调试界面及ModSim相应值