技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于OpenPLC的伺服驱动器开发方法  >  正文

一种基于OpenPLC的伺服驱动器开发方法

  • 国知局
  • 2024-07-31 23:15:28

本发明涉及软plc、伺服驱动领域,具体涉及一种基于openplc的伺服驱动器开发方法。

背景技术:

0、技术背景

1、随着微电子技术以及功率电子技术的快速发展,伺服驱动器向全数字化、网络化的伺服控制方向发展。目前的伺服驱动器大多数采用dsp芯片或者arm芯片进行c语言程序开发,平台依赖性较高。采用c语言进行软件开发相对学习成本较高,具有一定的门槛。由于商业化原因,工程师编写的软件程序大都直接下载到伺服驱动器中,应用者很难对伺服产品进行二次开发。将基于软plc技术应用到伺服驱动器开发有助于解决上述问题。软plc技术因其开放的体系结构能够更好的满足自动化控制领域的需求开始得到广泛研究和应用。iec61131-3标准的提出更是极大地促进了软plc技术的快速发展。利用软plc平台开发伺服驱动器的优点有很多,包括(1)具有图形化编程功能,易于开发人员掌握,开发门槛较低;(2)提供较好的软件整体规划、功能模块划分、模块组合功能,满足模块化开发需求;(3)开发的功能模块具有可复用性,方便功能模块的替换、增加和删除;(4)开发的软件程序不依赖硬件平台,方便移植。目前市面上的软plc软件有很多,常见的国外软plc软件有codesys、西门子的博途、倍福的twincat,这些国外软件发展起步早,功能强大,质量有保证。国内也有广州数控的gsk等十几款软plc软件,其中以日欧的数控系统性能最为优越且收费也更加昂贵。目前国内大部分厂家的伺服驱动器开发都是以上述这些比较成熟的商业软件平台为基础,由于收费和不开源等原因,这些方法都具有开放成本高和开放性差的问题,十分不利于中小公司关于伺服驱动器的开发(基于codesys控制器的脉冲轴控制方法(cn112748697a))。

技术实现思路

1、针对以上问题,本发明提出了一种基于openplc的伺服驱动器开发方法,选择开源软件openplc进行伺服驱动器的开发,大大降低了开发成本,同时也能保证开发效率和质量。

2、本发明至少通过如下技术方案之一实现。

3、一种基于openplc的伺服驱动器开发方法,包括以下步骤:

4、s1、使用openplc自定义控件的方法,基于plcopen规范开发运动控制库;

5、s2、使用openplc的功能块图编程语言实现伺服控制;

6、s3、使用openplc插件开发的方式实现ethercat协议中的部分功能模块。

7、进一步地,步骤s1中,采用自定义控件的方法实现要加入到运动控制库中的新的功能块;

8、自定义控件的方法如下:

9、s1.1、首先为新的功能块创建一个xml文件;

10、s1.2、将步骤s1.1中编写的xml文件加载到openplc编辑器的初始化文件definitions.py中;

11、s1.3、使用st语言将新的功能块的实现加入到matiec库,使新的功能块可以被成功编译;

12、s1.4、为新的功能块编写c代码,将新的功能块的c语言实现添加到openplc编辑器的仿真库中。

13、进一步地,步骤s1.1中,首先需要明确新的功能块的类型、属性和行为;

14、在xml文件中,可以使用标签来定义新的功能块的各个方面,包括名称、大小和颜色;

15、在xml文件中,还可以定义新的功能块的布局和位置信息;

16、设置多个事件处理程序,以定义新的功能块的响应行为,例如点击按钮时触发的操作。

17、进一步地,步骤s1.2中,definitions.py文件负责集中管理openplc编辑器中各个功能块的xml实现;

18、完成步骤s1.2后重新打开openplc编辑器就能在功能块库中看到上一步利用xml语言描述的新的功能块,此时新的功能块还不能成功编译使用。

19、进一步地,步骤s1.3中,所述使用st语言将新的功能块的实现加入到matiec库,是指将新的功能块的st语言实现添加到matiec.c文件中,matiec.c文件记录了openplc编辑器的各个功能块的st语言实现过程,只有在此登记过的功能块才能被成功编译;

20、完成步骤s1.3后,此时新的功能块可以正常使用并参与调试,不过在仿真过程中还无法按照预期响应。

21、进一步地,步骤s1.4中,将新的功能块的c语言实现添加到openplc编辑器的仿真库后,此时在使用仿真功能时,系统能识别到新的功能块并调用新的功能块的c语言实现来达到预期的仿真效果;

22、完成步骤s1.4后,完整地实现新的功能块的自定义过程;此时新的功能块已经集成到了openplc编辑器中,后续可以直接拖动出来实现功能块图编程。

23、进一步地,步骤s2中,实现openplc编辑器中的控件自定义后,参照plcopen规范构建运动控制功能块;

24、plcopen定义的运动控制功能块是基于iec 61113-3标准中的功能块进行定义的,plcopen功能块模型由功能块名称、输入输出和封装的内部算法实现三个部分共同构成;输入变量输入功能块中,经过功能块中的内部算法的计算,功能块输出输出变量;

25、采用openplc编辑器中的功能块图编程语言(fbd)来作为编程语言;功能块图编程语言是iec61131-3标准中规定的五种plc语言之一,其以功能块为设计单位,从控制功能入手,使复杂的控制系统分析和设计实现变得简化;功能块图编程语言为伺服驱动器软件开发提供了一种模块化的编程语言;将控制系统功能进行划分并封装在功能块内,功能块之间采用数据接口完成数据的连接和传递,从而构成控制系统;使用功能块图编程方便程序的扩展和维护,使伺服驱动器软件成为可重构的开放系统;

26、使用功能块图实现的伺服控制中,使用到的功能块包括位置环控制功能块、速度环控制功能块和电流环控制功能块;位置环、速度环和电流环三环控制都采用pid控制,可通过pid控制功能块进行实例化来分别得到位置环控制模块、速度环模块和电流环模块;pid控制功能块图输入参数包括:比例系数(kp)、微分系数(ki)和积分系数(kd);位置环一般为p控制,速度环和电流环一般为pi控制,可通过仅仅传入所需要的控制系数实现,如位置环可只传入比例系数,而使微分系数和积分系数设置为0。

27、进一步地,步骤s3中,针对伺服驱动控制需求,采用伺服与运动控制行规cia402行规实现ethercat协议的应用部分;cia402定义了通用对象数据字典、功率驱动设备的控制状态机,并规定了伺服驱动器运行模式;ethercat协议栈中的其他功能模块包括ethercat状态机,过程数据通信和邮箱通信,目前尚未进行相应的iec 61131-3实现;可考虑通过openplc插件开发的方式将尚未进行相应的iec 61131-3实现的功能模块以c语言程序进行集成,将基于c语言开发的功能模块作为一个插件,编译后得到库文件;随后开发基于插件机制的库文件调用接口,利用基于插件机制的库文件调用接口在iec6113-1编程环境中调用基于c语言开发的插件模块。

28、进一步地,所述基于插件机制的库文件调用接口,具体如下:

29、openplc支持插件扩展机制,扩展插件会在插件管理器区域显示出来,插件实现的功能块则会在功能块库区域显示;

30、只有按照设定规范开发的插件才能被识别,在进行程序编译时,插件代码和系统其他代码能够联合编译成目标文件;

31、openplc利用python的模块包技术来实现开放式插件规范,任何文件夹只要包括“__init__.py”的python源文件后,该文件夹就会成为python模块包;

32、插件模块包文件夹包括以下文件:

33、(1)__init__py:插件注册文件;

34、(2)pous.xml:插件接口描述文件;

35、(3)comment.txt:注释文件;

36、(4)插件源码或二进制文件;

37、前三个称为插件描述文件,openplc启动后会读取这三个文件,从而获得插件信息;因此该三个文件的文件名不能够随意修改;

38、插件源码或者二进制文件名按照在插件注册文件中注册的插件名命名;上述文件具有相应的编写规范,保证插件内容被正确识别和编译;

39、通过插件的方式来实现plc程序中的输入输出变量接口,对输入输出变量与对应的内存地址相关联;在插件模块包文件夹“__init__.py”文件中按照规范格式编写相应的程序代码,为程序中需要用到的输入输出变量规定好相应的变量类型、变量名和内存地址;在插件注册文件中设置输入输出变量具有严格格式。

40、进一步地,openplc编辑器的插件管理区域会显示插件相应的输入输出变量,通过拖拽方式可将插件应用到程序开发;同时,在openplc软件根目录下目标系统文件夹下,对plc_common_main.c文件进行修改,在其中定义与插件管理区域中显示的输入输出变量同名的变量,并且将定义后的变量关联上对应的地址,以确保插件在编辑使用时能够合法地与其他模块连接,以及仿真过程的正确运行。

41、与现有的控制方法相比,本发明的有益效果为:

42、本发明提供了一套低成本、低门槛伺服驱动器开发方法,非常有利于中小型公司对于伺服驱动器进行开发,在研发初期引入此套控制方法能够很好解决开发成本高的问题,同时能提供很好的扩充性。

本文地址:https://www.jishuxx.com/zhuanli/20240730/196658.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。