ControlLogix 控制器通过Message指令读写750系列变频器离散参数的程序示例
前言
PowerFlex 750 系列交流变频器坚固耐用,其易用性、灵活性和极佳的性能适用于各种工业应用。PowerFlex 753 可为功率高达350 Hp 和 250 kW 的应用提供常规控制。PowerFlex 755 的灵活性最高,性能范围高达 2000 Hp 和 1500 kW。
PowerFlex 755 内置以太网端口。可以使用通信模块轻松地为 PowerFlex 753 添加以太网功能。这样我们可以很方便的使用以太网功能,进行参数的配置。
在项目的实际应用中,根据实际工艺使用情况,需要通过PLC修改变频器的参数。有两种方法可以实现,一种是在PLC的IO中添加750系列变频器,在通信模块的参数中设置需要通信的数据(DL Form/To Net 1 – 16);一种是通过Message指令进行参数修改。前者优点是通信响应及时,配置简单;缺点是数据量限制在16个IO数据,变频器较多的情况下对PLC档次要求较高。
下面我们介绍通过Message指令进行参数修改的方法。
1.读取离散参数
假如我们需要读取PowerFlex 750 系列变频器以下五个32 位REAL (浮点) 参数的值:
• 参数001 – [Output Frequency]
• 参数007 – [Output Current]
• 参数008 – [Output Voltage]
• 参数009 – [Output Power]
• 参数011 – [DC Bus Volts]
我们需要使用离散读取的形式进行读取。
1.1程序编写
读取多个参数的控制器标签示例
操作数 | 离散读取报文的控制器标签 | 数据类型 |
XIC | Execute_Scattered_Read_Message | BOOL |
MSG | Scattered_Read_Message | MESSAGE |
读取多个参数的梯形图逻辑示例
1.2配置MSG指令
创建两个标签,分别用作发送命令的报文和返回数据的存储区域。
标签Scattered_Read_Request 使用下图中的数据结构,该结构的偶数位指定了要读取的参数号。
标签Scattered_Read_Response使用了下图的数据结构,参数值可通过 UDDT(用户自定义数据结构)转换为正确的表示方式。也可以配置为DINT的数组形式,再使用COP [复制] 指令来进行替换。
1.3Message Configuration 对话框
下表标识了配置读取多个参数报文时各个框中所需填写的数据。
Configuration 选项卡 |
示例值 |
描述 |
Message Type | CIP Generic | 用于访问适配器中的DPI参数对象。 |
Service Type | Custom | 离散报文读写要求使用此设置。 |
Service Code | 4d (十六进制) | 所请求服务的代码。 |
Class | 93 或9F (十六进制) | DPI 参数对象的类别ID。 显式报文通信时的限制,请参见3.读写限制。 |
Instance | 0 (十进制) | 离散报文要求此设置。 |
Attribute | 0 (十六进制) | 离散报文要求此设置。 |
Source Element | Scattered_Read_Request | 标签的名称,适用于要从扫描器或网桥发送到选件模块/变频器的所有服务数据。 |
Source Length | 40 个字节 | 要在报文中发送的服务数据的字节数。 字节数必须与所选数据类型相对应( 对于本例,40 个字节对应DINT[10] 数组)。 无论所读取的参数实际大小如何,离散读取报文始终假定其读取的每个参数都为32 位参数。 无论参数大小如何,最多可读取32 个参数,最大报文长度为256 个字节。 |
Destination | Scattered_Read_Response | 存储所读取数据的标签。 |
Communication 选项卡 |
示例值 |
描述 |
Path | My_PowerFlex_755_Drive | 该路径是报文将遵循的路线。 单击Browse 查找路径,或键入通讯路径。 |
Tag 选项卡 |
示例值 |
描述 |
名称 | Scattered_Read_Message | 报文的名称。 |
2.写入离散参数
如果我们想将以下数值写入到 PowerFlex750 系列变频器以下五个 32 位 REAL (浮点) 参数中
PowerFlex 750 系列变频器参数 |
写入值 |
536 – [Accel Time 2] | 11.1 s |
538 – [Decel Time 2] | 22.2 s |
575 – [Preset Speed 5] | 33.3 Hz |
576 – [Preset Speed 6] | 44.4 Hz |
577 – [Preset Speed 7] | 55.5 Hz |
2.1程序编写
写入多个参数的控制器标签示例
操作数 |
离散写入报文的控制器标签 |
数据类型 |
XIC | Execute_Scattered_Write_Message | BOOL |
MSG | Scattered_Write_Message | MESSAGE |
写入多个参数的梯形图逻辑示例
2.2配置MSG指令
创建两个标签,分别用作发送命令的报文和返回数据的存储区域。
标签Scattered_Read_Request 使用自定义数据数据结构,该数据结构拥有五组交错的 DINT 和 REAL。结构中的DINT指定了要写入的参数号,REAL存有要写入的数据。
标签Scattered_Read_Response的数据类型使用”DINT[10]”。
2.3Message Configuration 对话框
下表标识了配置读取多个参数报文时各个框中所需填写的数据。
Configuration 选项卡 |
示例值 |
描述 |
Message Type | CIP Generic | 用于访问适配器中的DPI参数对象。 |
Service Type | Custom | 离散报文读写要求使用此设置。 |
Service Code | 4e (十六进制) | 所请求服务的代码。 |
Class | 93 或9F (十六进制)(4) | DPI 参数对象的类别ID。 显式报文通信时的限制,请参见3.读写限制。 |
Instance | 0 (十进制) | 离散报文要求此设置。 |
Attribute | 0 (十六进制) | 离散报文要求此设置。 |
Source Element | Scattered_Read_Request | 标签的名称,适用于要从扫描器或网桥发送到选件模块/变频器的所有服务数据。 |
Source Length | 40 个字节 | 要在报文中发送的服务数据的字节数。 |
Destination | Scattered_Read_Response | 存储所读取数据的标签。 |
Communication 选项卡 |
示例值 |
描述 |
Path | My_PowerFlex_755_Drive | 该路径是报文将遵循的路线。 单击Browse 查找路径,或键入通讯路径。 |
Tag 选项卡 |
示例值 |
描述 |
名称 | Scattered_Read_Message | 报文的名称。 |
离散写入始终会将参数值写入到变频器的非易失性存储器(EEPROM) 内存中,所以这些值即使在变频器循环上电后仍将存在。
重要信息:因此EEPROM 可能会很快超出其寿命期限并导致变频器出现故障。
3.读写限制
Message指令读写参数,实际上使用的是CIP通讯中的显式报文通讯方式。显式报文用于传送无需持续更新的数据。利用显式报文,可在网络上配置并监视从设备的参数。
EtherNet/IP 对象类别代码 |
兼容性 |
显示报文功能 |
参数对象0x0F | 不兼容 | 单一参数读取/写入 |
DPI 参数对象0x93 | 允许访问变频器参数(端口0)、DPI 设备参数(仅限端口1…6) 和主机参数(仅限端口7…14)。 例如,DPI 参数对象类别代码0x93 可访问位于端口6 的安全速度监视选件模块。但是类代码0x93 无法访问例如端口5上24V I/O选件模块的主机参数。 有关实例(参数) 的编号,请参见3.1 DPI参数对象。 |
单一及离散参数读取/写入 |
主机DPI 参数对象0x9F | 允许访问变频器参数( 端口0) 和所有端口(1…14) 的主机参数。主机DPI 参数对象类别代码0x9F无法访问DPI ( 设备) 参数。 例如,如果20-750-DNET 选件模块位于端口4,则可访问其主机参数,但不可访问其DPI ( 设备) 参数。 有关实例( 参数) 编号,请参见3.2主机DPI 参数对象。 |
单一及离散参数读取 |
DPI端口说明
DPI端口1:本体HIM 连接器
DPI端口2:圆口连接器其中之一,手持和远程 HIM 选件的电缆连接/20-commE/20-commM
DPI端口3:圆口连接器其中之一,手持和远程 HIM 选件的电缆连接/20-commE/20-commM
DPI端口4:扩展插槽4
DPI端口5:扩展插槽5
DPI端口6:扩展插槽6
DPI端口7:扩展插槽7
DPI端口8:扩展插槽8
DPI端口9:电源扩展槽
DPI端口10:逆变单元(PF755 8框架以上)
DPI端口11:整流单元(PF755 交流输入8框架以上)/预充电单元(PF755 公共直流输入8框架以上)
DPI端口12:
DPI端口13:内置EtherNet/IP
DPI端口14:DeviceLogix
设备参数Device parameters
设备参数使该模块能够正常运行的配置参数。
主机参数Host parameters
主机参数是与变频器本机参与交互的参数。
3.1 DPI参数对象
类别代码[Instances]
十六进制 |
十进制 |
0x93 | 147 |
实例数[Instances]取决于设备中参数的数量。参数总数可读入实例0,属性0。
Instances | 设备 |
|
( 十六进制) | ( 十进制) | |
0x0000…0x3FFF | 0…16383 | 主变频器 |
0x4000…0x43FF | 16384…17407 | 选件模块 |
0x4400…0x47FF | 17408…18431 | DPI端口 1 |
0x4800…0x4BFF | 18432…19455 | DPI端口 2 |
0x4C00…0x4FFF | 19456…20479 | DPI端口 3 |
0x5000…0x53FF | 20480…21503 | DPI端口 4 |
0x5400…0x57FF | 21504…22527 | DPI端口 5 |
0x5800…0x5BFF | 22528…23551 | DPI端口 6 |
0x5C00…0x5FFF | 23552…24575 | DPI端口 7 |
0x6000…0x63FF | 24576…25599 | DPI端口 8 |
0x6400…0x67FF | 25600…26623 | DPI端口 9 |
0x6800…0x6BFF | 26624…27647 | DPI端口 10 |
0x6C00…0x6FFF | 27648…28671 | DPI端口 11 |
0x7000…0x73FF | 28672…29695 | DPI端口 12 |
0x7400…0x77FF | 29696…30719 | DPI端口 13 |
0x7800…0x7BFF | 30720…31743 | DPI端口 14 |
示例 |
描述 |
0 | 类别属性(变频器) |
1 | 变频器参数1属性[输出频率] |
2 | 变频器参数2属性[给定速度基准值] |
… | … |
16384 | 类别属性(选件模块) |
16385 | 选件模块参数1属性 |
… | … |
3.2主机 DPI 参数对象
类别代码[Instances]
十六进制 |
十进制 |
0x9F | 159 |
实例数[Instances]取决于设备中参数的数量。参数总数可读入实例0,属性0。
Instances | 设备 |
|
( 十六进制) | ( 十进制) | |
0x0000…0x3FFF | 0…16383 | 保留 |
0x4000…0x43FF | 16384…17407 | 选件模块 |
0x4400…0x47FF | 17408…18431 | DPI端口1 |
0x4800…0x4BFF | 18432…19455 | DPI端口2 |
0x4C00…0x4FFF | 19456…20479 | DPI端口3 |
0x5000…0x53FF | 20480…21503 | DPI端口4 |
0x5400…0x57FF | 21504…22527 | DPI端口5 |
0x5800…0x5BFF | 22528…23551 | DPI端口6 |
0x5C00…0x5FFF | 23552…24575 | DPI端口7 |
0x6000…0x63FF | 24576…25599 | DPI端口8 |
0x6400…0x67FF | 25600…26623 | DPI端口9 |
0x6800…0x6BFF | 26624…27647 | DPI端口10 |
0x6C00…0x6FFF | 27648…28671 | DPI端口11 |
0x7000…0x73FF | 28672…29695 | DPI端口12 |
0x7400…0x77FF | 29696…30719 | DPI端口13 |
0x7800…0x7BFF | 30720…31743 | DPI端口14 |
示例 |
描述 |
16384 | 类别属性(选件模块) |
16385 | 选件模块参数1属性 |
16386 | 选件模块参数2属性 |
… | … |
17408 | 类别属性(HIM) |
17409 | HIM 参数1属性 |
17410 | HIM 参数2属性 |
… | … |
坐等大佬D盘更新,祝大佬全家福寿安康
有公众号之类的吗,之前这个网站打不开了
[…] 关于使用Change…
[…] 关于使用Functi…
谢谢提醒,已删 :)