基于树莓派实现 Modbus TCP 通讯的工业方案

在树莓派基金会推出新的树莓派计算模块 3+ 系列不到四个月后,KUNBUS 公司正在为其新的 RevPi Connect + 配备这些模块。与具有 4GB eMMC 内存的旧版本相比,新设备现在具有 8GB、16GB 或 32GB eMMC 内存版本。

Revpi Connect 开源的工业物联网网关

KUNBUS Revpi Conenct作为小型的工业PC,其硬件基于树莓派计算模块3,采用1.2 GHz四核处理器,1GB内存且最高支持32GB的 eMMC闪存,内部集成支持24小时缓存的实时时钟(RTC),以确保RevPi Connect即使在断电的情况下仍然知道自己的运行时间点;软件采用开源的架构(包含完全的根权限),给用户提供了极大的自由度,预装了一个经过专业定制的带有实时补丁的Raspbian操作系统版本,因为其良好的扩展性,可适应于工业的许多应用场合。

RevPi Connect系列模块采用DIN导轨外壳,配有两个RJ45以太网插座,两个USB端口,一个4极RS485接口,一个Micro-HDMI插座和一个Micro-USB插座。这意味着,例如来自车间的机器数据可以安全地直接传输到云或更高级别的ERP系统。为此目的,用户可以使用诸如MQTT和OPC UA之类的熟悉协议。可以通过Node-RED,Python或直接在C中编写各种应用程序。

RevPi Connect的模块化设计使45mm宽的基础设备能够安装合适的扩展模块,如数字和模拟IO,现场总线网关和无线电模块,例如用于蓝牙的无线电模块。这些扩展模块可以通过顶部的即插即用连接器(无需工具)连接到基本单元,并通过图形用户界面轻松配置。

下面介绍如何通过RevPi Connect实现Modbus TCP主站来采集温度信号。

工具原料:Revpi Connect,网线,温度传感器等。

要求:

a.Revpi connect和Modbus-TCP从站位于同一网络中,

b.Modbus-TCP从站具有静态IP地址。

1.通过RJ45插孔将从站连接到Revpi Connect。将Revpi连接到电源。为了配置从站,我们需要事先获得一些数据,以便我们可以通过RevPi Connect寻址传感器。我们在从站的用户手册中找到这些数据。确定Modbus TCP网络数据

在这个例子中,我们使用温度传感器“Inveo NANO TEMP”作为从属设备。

请注意从站手册中的以下数据:

2.启用Modbus-TCP主站功能,打开Web浏览器。在Web浏览器的地址栏中输入RevPi Connect的IP地址。出现登录窗口。使用用户名“admin”登录。输入密码。您可以在RevPi Connect侧面的标签上找到它。单击“登录”。您现在可以看到RevPi Connect的当前设备状态。单击“服务”选项卡。单击启用/禁用Modbus主站中的“已启用”。单击“全部保存”按钮。

3.Modbus-TCP主站配置

点击“应用”标签。单击条目“PiCtory”后面的开始按钮。PiCtory打开。打开设备目录中的“虚拟设备”文件夹。选择Modbus-TCP Master。按住鼠标左键并将Modbus TCP Master拖动到RevPi Connect。您的Modbus-TCP主站现在将出现在配置板的最右侧。在“设备数据”窗口中设置适配器的基本设置。 此条目是可选的。 如果您使用大量设备并希望稍后在另一个程序中处理数据,则此输入可能非常有用。在“值编辑器”中,我们定义TCP连接的设置。 我们已经确定了传感器使用说明书中的数值:

4.右键单击配置板上的Modbus-TCP主站。上下文菜单打开。

选择条目“扩展数据”。这是我们设置Modbus命令的地方。 在这个例子中,我们需要一个命令来读取传感器的温度值。 我们已经从传感器的操作说明中收集了必要的信息:

Slave Addr.:1

功能码:READ_HOLING_REGISTERS(03)

寄存器地址:4004

寄存器数量:1

动作间隔(ms):1000

设备对应值:Input_Word_1

5.保存配置。单击“文件>保存”以保存文件。然后复位,配置才会生效。

6.查询过程映像中的值:打开命令行并输入以下命令:

piTest -r Input_Word_1

您收到从站的数据:2 Input_Word_1的字节值:284 dez(= 011c hex)

在我们的示例中,我们获取温度数据。值284对应于28.4℃

以上就是我们通过Revpi Connect实现Modbus TCP功能读取温度传感器。

了解更多关于 Revpi Connect 产品的信息请访问:

http://hkaco.com/zdh/KUNBUS/revolution/revolution.html