欢迎您访问河南省纳禾自动化系统有限公司官方网站! 控制工程、物联网、机器人、智能制造
咨询热线:0371-56699562 13383812899
您的位置:首页 > 新闻动态 > 行业动态

施耐德电气开放自动化平台初体验(3)

发布日期:2022-08-12 15:11:26   来源:行业动态   浏览量:

本文转载自CSDN  作者:姚家湾

 
施耐德电气EAE之所以称为开放自动化,其中一个重要的特征就是它提供了软件运行时(Soft dPAC)。而且不仅提供了Windows版本的Soft dPAC,还提供Linux版本的运行时,Linux版本运行时实现了容器化(docker),在Alpine OS环境的容器中运行。并且分别支持X86处理器和Arm hf处理器。这意味着软件dPAC既可以在X86 linux上运行,也可以在大多数Arm计算设备上运行,比如树莓PI,瑞芯微RK3399或者全志H6,NXP i.mx系列产品。这是令人兴奋的事情。为第三方自动化软硬件提供了一个入口。
 
另一方面,Soft dAPC还提供了Modbus TCP和TCP/UDP 方式和其它应用程序交换数据。
 
本文介绍Linux操作系统下的Soft dPAC的安装,使用,以及通过modbus TCP和TCP/UDP与外部程序交换数据。
 
 

PART 1

背景资料

 

EcoStruxure Automation Expert的三层架构

 

施耐德电气的EcoStruxure Automation Expert(简称为EAE),是一个自动化平台,他们称之为软件为中心的工业自动化。EAE具有三层架构。从底层的PLC,变频器,传感器到边缘控制的软件dPAC,到顶层的应用,分析和服务。

图片

EcoStruxure Automation Expert基本组成

图片

 

软件dPAC 的特性

 

EcoStruxure Automation Expert软件dPAC是先进的多平台IEC61499为基础的控制运行时,它包括:

●基于事件,网络透明的自动化能力

●原生过程告警支持

●modbus/TCP客户端和服务器

●OPC UA服务器

●Ethernet/IP(在v20.2中支持有限平台

 

EcoStruxure Automation Expert软件dPAC在一个标准PC上使能一个开放,灵活,可扩展,高度集成IEC61499运行时。从低成本的嵌入式系统到高性能IT服务器。

 

运行时在工业边缘提供了集成和运行先进IT工具,程序库和应用的开放平台。这是通过TCP/UDP socket和直接链接DLL库的方式实现的。

 

这个公共运行时集成硬件解决方案,比如Altivar 变频器,Modicon M251 dPAC,Modicon M580 dPAC,加上linux系统上基于容器的虚拟软件运行时。

 

EcoStruxure Automation Expert的Linux软件dPAC兼容实时Linux内核,并且支持每台机器上多个运行时同时运行,它们通过modbus/TCP和Ethernet/IP通信。

 

软件dPAC 的运行环境

 

图片

 

由此可见,Linux下的运行时有两个版本:

●X86-64版本是Intel X86下的版本

●Arm HF版本是32位Arm版本。arm hf arm hard float的简写。

 

这就意味着Soft dPAC不仅能够在Intel X86计算机上运行,也可以在Arm嵌入式平台上运行,比如树莓PI4,RK3399,H6等Arm板上运行。

 

Soft dPAC要求在docker容器中运行。施耐德电气提供的是一个docker容器的image。直接可以在docker中安装成为容器运行。

 

这是一件令人兴奋的事情,我们可以在各种边缘计算机上部署Soft dPAC,甚至可以将它们部署在云端。和其它微服务协同操作。构建一个开发性系统。

 

构建边缘计算架构

 

有了docker版本的Soft dPAC,就可以将它部署到边缘服务器上面,并且与docker容器中的其它微服务协同操作。下面是一个典型的架构图:

图片

 

前面提到,Soft dPAC提供了3种方式与外部程序交互

●动态库DLL直接调用

●modbus TCP

●TCP/UDP方式。

 

docker容器中程序以微服务的方式运行,所有的微服务通过一个统一的消息系统实现消息交换。比如RabbitMQ,MQTT等。为此,我们要设计一个Soft Gateway程序将Soft dPAC TCP传输的数据转换成微服务消息,通过message bus信息交换。在这里我们选择简单MQTT作为消息总线。

 
 
 

PART 2

测试过程

 

安装-解压

 

解压出EAE V20.2后有一个文件,这就是Linux版本Soft dPAC的压缩包:

tar zxvf ./softdpac.tar

 

安装image

 

sudo python3 install.py

 

启动容器运行

 

按照文档中的提示是运行startSoftdPAC.sh

sudo sh startSoftdPAC.sh 

--ipbase 192.168.31.95  

--itname enp1s0  

--image-name softdpac:x86-v20.2-20315-1064  

--nbcontainer 1

 

不过具体过程中发现docker的端口51499没有暴露除了来,直接使用物理端口IP地址也不是很好。可以使用docker的方式直接安装。我采用portainer 基于web的容器管理工具。

图片

 

PART 3

modbus/TCP 通信

 

在EAE中,有一个Modbus Software Gateway,可以实现与外部modbus TCP server的通信。这就可以连接第三方的远程IO模块,也可以连接其它的应用程序。

图片

在EAE中,modbus是作为硬件功能块来实现的。需要在device List窗口中,指定设备击右键选择 HW Configuration.

图片

出现下面窗口,选择 Standard.IoModbus.MODBUS.

图片

于是在HW Configuration中出现MODBUS项目。

 

下一步,在MODBUS端口添加设备,在MODBUS 下击右键,出现下面窗口。选择MODBUSGENTCPS。

图片

添加的MODBUSGENTCPS相当于Slave MODBUS设备。它内部的读写寄存器在一个XML 中定义。比如modbusmap.xml。如下面所示

最后还需要添加一个Standard.IoModbus.MODBUSSLAVEND.(不要忘记,我就是忘了,一直搞不通)

图片

该文件可以存储在Project文件夹中。下一步指向MODBUSGENTCPS1击右键,选择Modbus Gateway。弹出一个文件选择窗口。选择 modbusmap.xml.

图片

经过上面一系列添加之后,HW Configuration是这样的:

图片

我们还需要设置上面窗口中所有项目的属性(property),它们包括:

MODBUS,

MODBUSGENTCPS1,

VAL_OUT1_MODBUSGENTCPS1

VAL_OUT2_MODBUSGENTCPS1

VAL_IN1_MODBUSGENTCPS1

VAL_IN2_MODBUSGENTCPS1

 

下面是相关项目的属性窗口。

 

MODBUS属性

图片

MODBUSGENTCPS1属性

图片

VAL_OUT1_MODBUSGENTCPS1 /VAL_OUT2_MODBUSGENTCPS1属性

图片

VAL_IN1_MODBUSGENTCPS1 /VAL_IN2_MODBUSGENTCPS1的属性

图片

要反复检查,不要遗留。要不然也搞不定。

 

设置完成后,点击HW Configuration边上的Mapping,这时切换到RES窗口,发现在里面添加了两个功能块MODBUSGENTCPS MBRead和MODBUSGENTCPS MBWrite.你可以添加连线如下图。

图片

GO语言编写了一个简单的modbus server

图片

 
 

PART 4

TCP/UDP 通信

 

modbusTCP协议比较适合soft dPAC连接远程IO模块,而TCP/UDP更适合于软件交换数据。EAE 有一个NETIO功能块提供给用户建立特定的TCP,UDP通信。这个功能块意义非凡,使用户可以实现与非EAE程序的通信。

 

下面是一个简单的例子:

图片

ENDPOINT设置外部应用的协议类型和IP地址,端口。在EAE的文档中解释有点凌乱。我设置为 TCP Client模式,在9200端口接收数据,在与Soft dPAC同一台主机上向9201发送数据。

'TCP:9200;127.0.0.1:9201'

 

外部的测试程序采用GO 语言编写,代码如下:

图片

 

运行的结果如下:

图片

 
 

PART 5

一个简单的软件网关(Soft Gateway)

 

Soft dPAC只是提供了一个简单的TCP,UDP和modbusTCP通信机制。为了实现Soft dPAC与容器中的其它微服务通信。需要设计一个软件网关,将TCP数据转化成为微服务的消息总线协议。为了简单演示,我们实现了一个TCP/MQTT的软件网关(Soft Gateway),它采用Go语言编写。

 

MQTT代理使用开源Eclipse Mosquitto。

 

Soft Gateway 代码

(未完成,敬请期待吧!)

 
 
 
经过这些实验后,你大概能够体会到为什么说施耐德电气的EAE是一个开放自动化系统了。如果你对容器,云平台等相关技术了解的IT工程师。你会想象出各种应用场景。产生无限的遐想。EAE的确是你想要的样子。
 

 

上一篇:Modbus 的RTU、ASCII、TCP傻傻搞不清楚?一文全解读

下一篇:施耐德电气开放自动化平台初体验(2)

相关推荐