一种基于制造技术

技术编号:39663151 阅读:9 留言:0更新日期:2023-12-11 18:26
本发明专利技术公开了一种基于

【技术实现步骤摘要】
一种基于CoDeSys控制系统的PLC数据的网络读写方法


[0001]本专利技术属于工控设备数据安全领域,涉及一种基于
CoDeSys
控制系统的
PLC
数据的网络读写方法


技术介绍

[0002]CoDeSys
是一种基于
IEC 61131
‑3标准的
PLC
编程软件,在全球范围内被广泛应用于工业自动化领域
。CoDeSys
支持多种编程语言,如梯形图
(LD)、
结构化文本
(ST)、
功能块图
(FB)、
顺序函数图
(SFC)
等,且具有良好的可移植性和兼容性

此外,
CoDeSys
还提供了丰富的开发工具和库,方便编程和调试

[0003]CoDeSys
作为一种行业公认的
PLC
编程软件,被广泛应用于多种
PLC
型号的编程中

各大
PLC
品牌也都不断地扩展支持
CoDeSys
编程的型号,以满足不同行业的需求

目前支持的型号包括,
Siemens PLC、ABB PLC、Beckhoff PLC、Phoenix Contact PLC、WAGO PLC、
德尔福
PLC、Schneider PLC


[0004]不同<br/>PLC
控制厂商,一般都会推出自己的编程软件,
PLC
开发工程师需要根据不同
PLC
控制器学习不同的编程软件,不同编程软件中编写的代码不能共用,也无法移植,这样就增加了开发周期,增加了成本

使用
CoDeSys
开发系统后,可以在多个总线

多个系统

多个
PLC
上进行切换

[0005]但是,现有技术中技术方案存在的问题是:
CoDeSys
虽然支持多种
PLC,
但对于不同
PLC
都有一套通用接口进行通信,然而这些接口都只是提供给
CoDeSys Development System
调用,本领域技术人员无法通过这些接口来访问不同的
PLC,
也不能读写
PLC
数据


技术实现思路

[0006]本申请针现有技术的技术问题,提供一种基于
CoDeSys
控制系统的
PLC
数据的网络读写方法,从而能够通过这些接口来访问不同的
PLC,
到达读写
PLC
数据的目的

本申请所提供的方法包括以下步骤:
[0007]S100
:初始化系统环境,包括以下步骤:
[0008]S101
:从
CODESYSDevelopment System
软件中提取所需文件,包括
Elau.CoDeSysMinimalProjectInterface.dll、Elau.Netmanage.Core.dll、Elau.Olymp.Communication2.dll、Elau.PDBackUp.Controls.dll、Elau.PDBackUp.Core.dll、Elau.PDBackup.Firmware.dll、Elau.XO.Controls.dll、Elau.XO.Obsolete.Controls.dll、Elau.XO.Utility.dl

[0009]S102
:调用
Elau.Netmanage.Core.dll
文件中的
CoreEntry
类并创建核心对象;
[0010]S103
:调用所述核心对象的
StartListening()
方法,开启监听;
[0011]S104
:调用
Elau.Netmanage.Core.dll
文件中的
ControllerCollection
类并创建采集控制器,保存
CoreEntry
对象中的
ControlersDataArchive
接口;
[0012]S105
:判断
CoreEntry
类及
ControllerCollection
类是否调用成功,如果是,执行
步骤
S200,
否则,退出流程;
[0013]S200
:查找激活的控制器,包括以下步骤:
[0014]S201
:调用
Elau.Netmanage.Core.dll
文件中的
RefreshCommunicationCommand()
方法来创建刷新控制器指令对象;
[0015]S202
:调用
Elau.Netmanage.Core.dll
文件中的
RemoteFunctionCall.WCF.NamedPipeSender.ExecuteNetmanageCommand()
方法发送刷新控制器指令对象;
[0016]S203
:调用
ControlersDataArchive
接口的
UpdateControllerData()
方法,更新控制器内容;
[0017]S204
:调用
ControllerCollection
类的
GetAllController()
方法获取所有控制器;
[0018]S205
:判断控制器对象的
ControllerLifeState
成员值是否为
ALIVE
,如果是,执行步骤
S206
,否则,结束流程;
[0019]S206
:获取控制器的
ID、
固件版本及连接模式;
[0020]S207
:判断连接模式是否为网络连接,如果是,执行步骤
S208
,否则,结束流程;
[0021]S208
:获取控制器的
IP
地址;
[0022]S300
:与控制器建立连接;
[0023]S400
:获取控制器信息,包括固件版本

内核版本

控制类型

对象名称
、NETBIOS
名称;
[0024]S500
:读取控制器数据;
[0025]S600<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于
CoDeSys
控制系统的
PLC
数据的网络读写方法,其特征在于,包括以下步骤:
S100
:初始化系统环境,包括以下步骤:
S101
:从
CODESYSDevelopment System
软件中提取所需文件,包括
Elau.CoDeSysMinimalProjectInterface.dll、Elau.Netmanage.Core.dll、Elau.Olymp.Communication2.dll、Elau.PDBackUp.Controls.dll、Elau.PDBackUp.Core.dll、Elau.PDBackup.Firmware.dll、Elau.XO.Controls.dll、Elau.XO.Obsolete.Controls.dll、Elau.XO.Utility.dl

S102
:调用
Elau.Netmanage.Core.dll
文件中的
CoreEntry
类并创建核心对象;
S103
:调用所述核心对象的
StartListening()
方法,开启监听;
S104
:调用
Elau.Netmanage.Core.dll
文件中的
ControllerCollection
类并创建采集控制器,保存
CoreEntry
对象中的
ControlersDataArchive
接口;
S105
:判断
CoreEntry
类及
ControllerCollection
类是否调用成功,如果是,执行步骤
S200,
否则,退出流程;
S200
:查找激活的控制器,包括以下步骤:
S201
:调用
Elau.Netmanage.Core.dll
文件中的
RefreshCommunicationCommand()
方法来创建刷新控制器指令对象;
S202
:调用
Elau.Netmanage.Core.dll
文件中的
RemoteFunctionCall.WCF.NamedPipeSender.ExecuteNetmanageCommand()
方法发送刷新控制器指令对象;
S203
:调用
ControlersDataArchive
接口的
UpdateControllerData()
方法,更新控制器内容;
S204
:调用
ControllerCollection
类的
GetAllController()
方法获取所有控制器;
S205
:判断控制器对象的
ControllerLifeState
成员值是否为
ALIVE
,如果是,执行步骤
S206
,否则,结束流程;
S206
:获取控制器的
ID、
固件版本及连接模式;
S207
:判断连接模式是否为网络连接,如果是,执行步骤
S208
,否则,结束流程;
S208
:获取控制器的
IP
地址;
S300
:与控制器建立连接;
S400
:获取控制器信息,包括固件版本

内核版本

控制类型

对象名称
、NETBIOS
名称;
S500
:读取控制器数据;
S600
:向控制器写入
/
上...

【专利技术属性】
技术研发人员:梁效宁杨先珉张佳强朱星海
申请(专利权)人:四川效率源信息安全技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1