PLC程序在不同品牌机型间的移植方法

阅读: 评论:0

2024年2月8日发(作者:)

PLC程序在不同品牌机型间的移植方法

-88-科学技术创新2021.14PLC程序在不同品牌机型间的移植方法胡贞斌(集团)有限公司,(上海电器科学研究所上海200063)可编程控制PLC种类繁多,为节省编程调试时间与知识共享计,本文结摘要:当下的工业控制现场,编程与使用方式各异,对PLC控制器所使用的梯形图(LD)(FBD)(SFC)(IL)(ST)合IEC61131-3标准,、功能块图、顺序功能图、指令表、结构文本等编程语言进行对比,获得结构文本(ST)编程语言存在程序移植的可行性,通过对结构文本(ST)编程语言在AB(罗克韦尔)、施耐德、得出一种利用结构文本(ST)西门子(TIA系列)三种品牌PLC控制器机型中使用的异同比较,编程语言编制程序功能块在多种品牌PLC控制器间转移的应用方法。关键词:PLC控制器;多品牌;程序移植;结构文本语言(ST)中图分类号:TP311.54文献标识码:A文章编号:2096-4390渊2021冤14-0088-03当前工业控制现场,可编制程序控制器PLC大行其道,各对象。可继承与复种品牌百花齐放。控制过程中许多程序功能相同,用,但由于控制器PLC的更换,编程人员不得不多次翻译式的使得同样功能存在不同程序表达,阻滞了程序标准化与知识延同时也给维护者带来续的发展,隔断了优秀程序算法的继承,程序识读障碍,造成时间浪费。为解决此类问题,对程序功能块在不同品牌PLC控制器机型间的移植实现方法的需求变得尤为迫切。1程序移植方法的提出1.1程序移植定义与特征程序移植的定义“软件工程中,程序往往被视为有生命的机体,将源代码从一种环境下放到另一种环境下运行也可以称1之为移植。”程序移植需具备如下几个特征:2.2程序移植实现过程本文以模拟量线性转换功能块的复制展现PLC程序移植模拟量线性转换的算法公式为:重新编写与调试。由于编程人员业务水平及编程思路的差异,过程。其中:Y:仪表所表示的物理量真实值;X:仪表所对应的PLC模拟量输入模块通道转换的数字值;Metermax:仪表所对应的物理量量程最大值;Metermin:仪表所对应的物理量量程最小值;Inputmax:PLC模拟量模块模数转换可转换数字量最大值;Inputmin:PLC模拟量模块模数转换可转换数字量最小值;2.2.1程序变量定义序号 功能类型

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

输入

输入

输入

输入

输入

输入

输入

输入

输入

输出

输出

输出

输出

输出

输出

输出

变量名称

AI_Input

r_MeterMax

r_MeterMin

I_ModelMax

I_ModelMin

r_HH_Alarm_Set

r_LL_Alarm_Set

r_H_Alarm_Set

r_L_Alarm_set

r_MeterValue

b_HH_Alarm

b_LL_Alarm

b_H_Alarm

b_L_Alarm

b_Max_Aalrm

b_Min_Alarm

数值类型

INT

Real

Real

INT

INT

Real

Real

Real

Real

Real

Bool

Bool

Bool

Bool

Bool

Bool

说明

模拟端口输入值,对应公式中的X

仪表最大值(物理值量程)

仪表最小值(物理值量程)

模块最大值(数字值量程)

模块最小值(数字值量程)

超高报警限值

超低报警限值

高报警限值

低报警限值

仪表实际物理值,对应公式中的Y

超高报警

超低报警

高报警

低报警

仪表上溢报警

仪表下溢报警

1.1.1源代码具备可复制性;更换环境后可运行。1.1.2源代码具备通用可识性,1.2程序移植方法的提出根据IEC61131-3对PLC编程语言的规定,PLC控制器适用图形与文本两类语言。梯形图LD、功能块图FBD及顺序功能SFC三种编程语言故使用图形语言编制的程序均强调图形的绘制,复制性欠佳,在不同品牌PLC间不可移植。指令表IL编程语言属于文本语言,代码具备可复制性,但程序编程对PLC硬件是IL为类汇编语言,为程序执行效率计,地址依赖性很强,程序移植的通用可识性欠佳。结构文本ST为类PASCAL的语言,所使用的语句与关键多种PLC机型均可识别并运行,故ST词符合高级语言的规定,语言同时满足程序移植的复制性与通用可识性的特征。据此提出使用结构文本ST编程语言编制程序功能块实现PLC程序在不同品牌机型中移植的方法。2程序移植方法的实现2.1方法实验机型的选择标准,现选用过程控制中出现频次较高的美国AB德ControlLogix1756-L71、法国施耐德M580系列CPUeP582020、国西门子S7-300系列CPU315作为程序移植方法实现的研究2.2.2功能程序表述如2.2.2.1首先根据ST语言语法使用文本文件创建程序,VAR_INPUTAI_Input:Int;对应公式中的X//模拟端口输入值,//仪表最大值(物理值量程)r_MeterMax:Real;当下工业现场工作中的PLC机型多数均支持IEC61131-3下:

2021.14科学技术创新r_Metermin:Real;I_ModelMax:Int;I_ModelMin:Int;//仪表最小值(物理值量程)//模块最大值(数字值量程)//模块最小值(数字值量程)//超高报警限值//超低报警限值//高报警限值//低报警限值(*##仪表高限报警##*)IFr_MeterValue>r_H_Alarm_SetTHENVAR_OUTPUTr_MeterValue:Real;b_HH_Alarm:Bool;b_LL_Alarm:Bool;b_H_Alarm:Bool;b_L_Alarm:Bool;b_Max_Alarm:Bool;b_Min_Alarm:Bool;END_VARBEGIN(*模拟量线性转换程序*)(*###版本V0.0#2014-11-18CopyrightforHuzhenbin###*)(*##输入采集值上溢报警##*)IFAI_Input>I_ModelMaxTHENr_MeterValue:=r_MeterMax;b_Min_Alarm:=0;b_Max_Alarm:=1;END_IF;(*##输入模拟值转换##*)IFAI_Input<=I_ModelMaxANDAI_InputI_ModelMinTHENb_Max_Alarm:=0;b_Min_Alarm:=0;(*##数值转换:Y=(Metermax-Metermin)*X/(Inputmax-Inputmin)+r_MeterValueI_ModelMin)+(Inputmax*Metermin-Inputmin*Metermax)/:=(r_MeterMax-r_Metermin)*(Inputmax-Inputmin);##*)INT_TO_REAL(AI_Input)/INT_TO_REAL(I_ModelMax-2.2.2.2西门子PLCS7-300CPU315的程序表述(*##仪表低限报警##*)IFr_MeterValuer_HH_Alarm_SetTHENb_HH_Alarm:=1;ELSEb_HH_Alarm:=0;END_IF;-89-r_HH_Alarm_Set:Real;r_LL_Alarm_set:Real;r_H_Alarm_Set:Real;r_L_Alarm_Set:Real;END_VAR将上述文本起始增加“FUNCTION"Analog":Void{>=S7_Optimized_Access:='FALSE'}VERSION:0.1”在文件结尾以ANSI编码保存为增加“END_FUNCTION”,“*.SCL”文件。使在西门子编程软件TIAPortal中以“外部源文件”导入,可运行。用“从源生成块”功能,编写的ST程序成功导入,导入成功的文件有如下特点:西门子PLC编译器对局部变量的引用采用“#”作为前缀;文件应以ANSI编码保存。为保证导入中文注释可读,2.2.2.3施耐德M580eP5802020的程序表达与导入软件导入施耐德M580系列使用UnityProXL软件编程,(INT_TO_REAL(I_ModelMax)*r_Metermin-文件支持“*.xdb”类型,其可使用文本文件编辑,但是其在变量的ST结构文本程序改动较大,故在程序移植过程中选用变量在编程软件中定义,程序逻辑语句复制粘贴的方式进行。创建步骤如下:(1)创建DFB并命名;输出相应位置定义;(2)将上述各变量在输入、(3)在DFB段中增加程序并选择语言为ST;(4)将上述ST程序Begin以下复制进程序段中;(5)编译执行;编译过程中发现,施耐德PLC编译器对于“//”的单行注释INT_TO_REAL(I_ModelMin)*r_MeterMax)/INT_TO_REAL描述部分为XML的描述语言,不符合ST语言的结构,对于创建(I_ModelMax-I_ModelMin);END_IF;(*##输入采集值下溢报警###*)IFAI_Input

-90-科学技术创新2021.143.1.2.3浮点数标准化书写,根据实际使用的小数位书写浮点数。3.1.2.4编程过程中使用“(*…*)”对单行语句进行注释。3.2程序移植方法的总结西门子(TIA系列)根据上述对AB、施耐德、三种品牌PLC认为是非法的。2.2.2.4ABControlLogix1756-L71CPU的程序表述ABControlLogix1756-L71CPU使用RSLogix5000软件进行编程,其对于程序导入文件类型为“*.L5X”,可使用文本文件编如使用辑,但是其对于变量定义及程序均使用XML结构描述,故的移植试验、可知使用结构化文本已编写好的结构文本程序更改,工作量大且无法保证正确,异同比较及解决方法提出,ABPLC采用与施耐德PLC类似的编程方式,在编译器内定义ST编程语言编制程序功能块在不同品牌机型中移植方法,程序变量,逻辑程序通过文本复制方式粘贴进入编译运行。创建步骤如下:(1)新建“Add-OnInstructions”并选择语言为“StructuredText”;中根据输入输出类型创建程序变量;(3)在“Logic”中将上述ST程序Begin以下复制进程序段中;(4)编译运行。其从程序复制编译后可见,ABPLC由于数据结构的关系,数在ABPLC中无法识别,将函数去除后程序编译运行正常。3程序移植方法总结3.1程序移植中存在问题与解决3.1.1存在问题(TIA系列)针对上述AB、施耐德及西门子三种品牌PLC控功能程序块在此三种PLC控制器在结构文本支持上的相异点,制器间移植存在问题如下:3.1.1.1Bool的表达方式编写需具备如下几个条件:3.2.1变量命名的标准化即变量名由字程序变量的命名应遵守匈牙利变量命名法,变量名长度小于母、数字、符号组成,并以变量类型的字母开头,3.2.2程序注释的标准化程序注释应遵守IEC61131-3对注释的规定,使用“(*…*)”格式。3.2.3赋值方式的统一化程序中对BOOL量的赋值应使用“0”与“1”的数值化赋值,3.2.4特型函数引用的外置化尽量在实际编程过程中应避免对有品牌特征的函的使用,使用通用的方法实现。如果是在编程中实现无法规避的函数,加强程序块的通用性。需在通用功能程序块外完成转换,4结论电机设笔者使用结构化文本语言实现了模拟量线性转换、备的手动控制、多台水泵组合自动运行等功能程序块在施耐德(Unity)、AB(RSLogix)、西门子(TIA)中的互相移植,实现功能程避免(2)在新建的Add-OnInstructions功能块内参数与本地变量31字符,“#”符号的使用。故在程序中出现函避免对数据类型是隐形强制转换,“INT_To_Real”“True”“False”、的使用。为ABPLC对Bool量的结果表示为“0”与“1”,“True”与序的标准化,在排水泵站与污水处理厂等多个工程中应用,但是在施耐德与西笔者在工程调试中节省了时间。“False”的表示方法被编译器认为是非法的,(TIA系列)门子PLC中两种表示方法均被接受。3.1.1.2变量的引用方式(TIA系列)表达方式,而西门子在结构文本中对于全局变量使用引号“""”对于局部变量加“#”前缀表示。3.1.1.3浮点数书写方式AB与西门子(TIA系列)PLC控制器,浮点数可以写成整数通过笔者的工程实践证实,使用结构化文本ST编程语言编制程序功能块实现PLC程序在不同品牌机型中移植是一种注释1百度百科“移植(科学术语)的解释”/item/%E7%A7%BB%E6%A4%8D/4669209?fr=aladdin.参考文献AB与施耐德PLC在结构文本中对变量的引用是直接字符可行的方法。机形式,编译器可根据变量定义的类型自主转换,而施耐德PLC[1]彭瑜,何衍庆.IEC61131-3编程语方及应用基础[M].北京:械工业出版社,2009.则必须写成浮点数形式。3.1.1.4单行注释的使用在AB与西门子(TIA系列)PLC中,“//”的单行注释语句可%E7%A7%BB%E6%A4%8D/4669209?fr=aladdin.[2]百度百科.科学术语:移植[EB/OL]./item/以使用,而在施耐德PLC中“//”注释语句被编译器认为是非法的。3.1.2解决方法(TIA系列)三种为实现程序功能块在AB、施耐德及西门子品牌PLC控制器间的移植,对上述问题提出如下解决办法:在编3.1.2.1BOOL变量赋值避免“True”与“False”的使用,程中保持“0”与“1”的数值表达方式,提高程序的通用性。3.1.2.2功能程序块根据IEC6113-3标准规定的结构化文本格式使用文本文件编程,在西门子等对标准支持比较高的PLC机型中通过导入方式完成,由编译器自主增加变量引用前缀。

PLC程序在不同品牌机型间的移植方法

本文发布于:2024-02-08 02:27:48,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170733046866256.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   移植   使用   文本   变量   方法
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23