Selec的Flexys是一个模块化的可编程逻辑控制器(PLC)及其相关插件模块系列。Flexys系列还包含本文介绍的RS-485 Modbus远程扩展模块。图1展示了Selec EXP FLEX 3M V3以及一个FL-SC-AI03-U-AO02-U模块。它们共同为配备Modbus的PLC增加了模拟功能,提供三个14位模拟输入和两个模拟输出。
本工程简报对如图1配置的Selec EXP FLEX远程底座进行了一般性介绍。其结果是一个独立的多功能Modbus模拟模块。可以将更多模块组合在一起,以扩展远程I/O功能。
本文是DigiKey工业自动化现场指南的一部分
位置 :Start It → SELEC
难度 :
学生 — 难度等级说明
最后更新 :2026年3月9日
图1:搭载FL-SC-AI03-U-AO02-U模拟卡的Selec EXP FLEX 3M V3远程Modbus底座图像。它已准备好通过AC-USB-RS485-02 USB转RS-485电缆进行编程。
技术提示 :本文概述了准备所介绍的Selec模拟卡通过Modbus进行远程操作的必要步骤。该流程普遍适用于所有Selec Flexys卡。
请务必查阅Selec相关资料,了解如何将模块与其Flexys系列PLC连接的信息。
准备 Selec 组件用于通用 Modbus 的步骤
本节提供了准备Selec设备的一般性概述。请务必查阅相应的说明手册以获取详细信息。例如,我们重点介绍Modbus接口,但略过了0-10 V与4-20 mA输入和输出配置的细节。请注意,相关卡(如数字I/O卡)将有类似的Modbus要求,但硬件配置独特。
步骤总结如下:
-
设置EXP FLEX 2M V3远程底座的Modbus波特率和地址。
-
配置FL-SC-AI03-AO02-U卡的跳线。
-
通过24 VDC电源为EXP FLEX 2M V3远程底座供电。
-
对EXP FLEX 2M V3扩展模块进行编程。
-
根据需要连接Modbus接线和终端电阻。
-
将FL-SC-AI03-AO02-U卡的内部寄存器映射到其Modbus地址
-
对PLC进行编程
设置波特率和 Modbus 地址
EXP FLEX 2M V3底座有四个必须设置的DIP开关。它们位于模块的右下角,如图1所示。这些开关被“编程”为19200波特率和物理Modbus地址1。
设置内部跳线
诸如FL-SC-AI03-AO02-U等Selec Flexys卡必须使用排针跳线进行配置才能正常运行,如图2所示。此卡可配置为与许多常见的模拟工业设备连接。这包括0-10 VDC、4-20 mA以及多种热传感器,包括RTD和热电偶,例如J型和K型。
有关配置该卡的更多信息,请参阅Selec说明手册。
图2 :FL-SC-AI03-AO02-U卡内部跳线图像。请注意,所有通道均配置为电压模式。
技术提示 :Modbus使用差分信号传输来最大限度地减少远距离通信的噪声。双绞线的极性至关重要,如果接线接反,系统将无法运行。
这个DIY LED逻辑探头是检查通信活动的好工具。
为 EXP FLEX 2M V3 供电
EXP FLEX 2M V3由24 VDC电源供电。
可以推测,该模块将安装在距离主PLC较远的远程机柜中。然后安装一根双绞线用于Modbus通信。可以从主设备机柜向远程机柜铺设电源线。然而,在远程机柜中安装专用的24 VDC电源可能是更明智的做法。
对 EXP FLEX 2M V3 扩展模块进行编程。
必须对EXP FLEX 2M V3远程底座进行编程,使其识别主站卡。Selec提供了一个EXP FLEX 2M V3实用程序来完成此任务。运行中的程序截图如图3所示。
编程需要一个USB转RS-485适配器,例如图1所示的Selec AC-USB-RS485-02。
完成后,EXP FLEX 2M V3上先前亮起的红色错误指示灯将熄灭。
图 3 EXP FLEX 2M V3实用程序的屏幕截图。下半部分显示所选卡的“查看Modbus表”信息。
根据需要连接 Modbus 导线和终端电阻
系统现在已准备好对Modbus通信做出适当响应。请查阅您的PLC文档以及Selec资料,以确定最适合您系统的设置。
一般而言,使用Belden 9841屏蔽双绞线可实现远距离可靠通信。此外,您可能需要添加120Ω终端电阻以减少线路反射。
映射 Modbus 地址
Modbus是一种基于地址的协议。要使用该硬件,我们必须获得一张将寄存器名称与Modbus地址对应起来的映射表。下面的代码清单中提供了一个示例。
查找Selec卡的Modbus地址确实需要一些工作。最便捷的位置似乎是EXP FLEX 2M V3实用程序中的“查看Modbus表”,如图3所示。
技术提示 :对于模拟信号,Modbus识别只读输入寄存器和读/写输出寄存器。对于模拟卡,模拟输入(测量的温度、电压和电流)与输入寄存器相关联。设备配置寄存器(保持寄存器)用于写入以修改硬件操作。
/*
* Modbus Register Map for Selec FL-SC-AI03-U-AO02-U
*
* - The module is part of the Selec Flexys Series. It features:
* 3 Channel Analog Input
* 2 Channel Analog Output
*
* Reminder: Set the programming headers for J1 to J5 before use.
*
* Note:
* - Modbus Input Registers (Read-Only) begin at addresses 30000.
* - Modbus Holding Registers (Read/Write) begin at addresses 40000.
*
**************************
* Input Resister Mapping *
**************************
* Register Name Modbus Address Description
* Mod_ID 30000
* HW_VerNo 30001
* SWVerNo 30002
* SlotStatus 30003
* SlotErrorCnt 30004
*
* AI3_U_PV0 30005 Input value channel 0 e.g., when set to voltage, 9.5 VDC in yields 9500
* AI3_U_PV1 30006 Input value channel 1
* AI3_U_PV2 30007 Input value channel 2
*
* AI3_U_PVS0 30008 Channel 0 status e.g., 2 is overrange
* AI3_U_PVS1 30009 Channel 1 status
* AI3_U_PVS2 30010 Channel 2 status
*
***************************
* Output Resister Mapping *
***************************
* Register Name Modbus Address Description
* REG_AI3_U_SEN0 40000 Input channel 0 configuration value e.g., set to 15 to read voltage
* REG_AI3_U_SEN1 40001 Input channel 1 configuration value
* REG_AI3_U_SEN2 40002 Input channel 2 configuration value
*
* REG_AO2_U_OPT0 40003 Set Output % (0-100%) where 950 yields a physical 9.5 VDC output
* REG_AO2_U_OPT1 40004 Set Output % (0-100%)
*
* REG_AO2_U_TYP0 40005 Output 0 (module channel 3) configuration value e.g., 0 for voltage
* REG_AO2_U_TYP1 40006 Output 1 (module channel 4)
编写您的 PLC 程序
我们现在准备将Selec远程Modbus基座集成到更大的工业控制系统中。按照您PLC的文档配置Modbus。然后,读取和写入相应的寄存器。
技术提示 :Modbus地址对程序员来说是一个容易出错的地方。例如,我见过一些函数读取输入寄存器。这些函数没有使用地址30005来读取通道0的输入寄存器,而是使用了值5。这个抽象函数随后会适当处理Modbus协议。
结束语
我很兴奋能将这款Selec产品集成到我的下一个PLC项目中。无需太多努力,我们就构建了一个基于Modbus的RS-485远程I/O系统,主PLC与远程机箱之间的距离可能长达1000英尺。
在结束之前,请记住本文档是使用Selec组件的一般指南。如果您能协助扩展本主题以涵盖其他模块,我们将不胜感激。
我是否提到过,可以将多个远程FLEX 2M底座并排放置,以扩展基于Modbus的远程I/O系统。
继续探索工业控制系统
如果本次讨论对您有帮助,您可能还想了解:
DigiKey 导航
- 完整目录 :工业控制与自动化


