外文翻译--基于ST语言(结构化文本语言)可编程控制器(中文)
2020-06-27 07:36:49
【导读】的控制逻辑应用,在此过程中我们使用的是IEC61131-3标准ST语言。可编程控制器是大多数控制项目的骨干,例如发电,钢铁生产,化工,石油化工,核电站等各行业。一个可编程控制器是一种工业计算机控制系统,它能连续监。测设备的输入状态,并且根据某种程序来控制输出设备的状态。条件是一段时间,要求可编程控制器的输出结果应该为一个实时的系统。PLC生产厂商使用自己的编程语言,这些语言与他人是不兼容的。为了提高不同产品之。IEC61131标准的第三部分规定了统一的基于可编程控制器的编程语言套件的语。如一个SCADA站)发送信息。使用要求1:读取以下内容的输入情况。时间扫描为每10ms读取一次。2.如果P1停止按钮被按下,或者排水压力过高则停止工作。对任意外部查询设备发送相应响应数据。制器系统的程序必须支持该系统。系统所利用的所有资源组织在一起,并提供他们之间交换数据的协议。源进行任务分配。执行某个组织单位的方案,其中包括程序集和功
【正文】
第1页共8页
中文2670字
基于ST语言(结构化文本语言)可编程控制器
组态控制和编程经验
作者:G.Karmakar,AshutoshKabra,JoseJoseph,B.B.Biswas,R.K.Patil
反应器控制部分巴哈马原子能研究中心
摘要:本文的主要内容为在可编程控制器的配置过程中,根据运行过程中的配置情况进
行程序代码编写,并且将实时操作系统抽象的嵌入PLC硬件之中,从而实现一个典型
的控制逻辑应用,在此过程中我们使用的是IEC61131-3标准ST语言。
关键词:PLC,ST语言,POU(程序组织单元),配置,资源,程序,功能
可编程控制器是大多数控制项目的骨干,例如发电,钢铁生产,化工,石油化工,
核电站等各行业。一个可编程控制器(PLC)是一种工业计算机控制系统,它能连续监
测设备的输入状态,并且根据某种程序来控制输出设备的状态。针对生产过程中的输入
条件是一段时间,要求可编程控制器的输出结果应该为一个实时的系统。在过去,许多
PLC生产厂商使用自己的编程语言,这些语言与他人是不兼容的。为了提高不同产品之
间重用组件的兼容性和互操作性,国际电工委员会61131标准针对主要不同引入统一的
做法。IEC61131标准的第三部分规定了统一的基于可编程控制器的编程语言套件的语
法和语义。在本文中,我们描述了一个运用PLC的典型控制逻辑应用,包括实时的程序
写入,实时的代码生成配置,和PLC硬件部分的实时操作系统嵌入,在此过程中我们运
用的是ST编程语言。
案例定义
一个简单的应用案例,控制一个水泵P1和排放阀V1并且根据要求向指定设备(例
如一个SCADA站)发送信息。
使用要求:
使用要求1:读取以下内容的输入情况。
a)P1的启动按钮的状态(离散输入)
b)P1的停止按钮的状态(离散输入)
第2页共8页
c)V1的启动按钮的状态(离散输入)
d)V1的关闭按钮的状态(离散输入)
e)P1的开/关状态(离散输入)
f)读取P1排水压力(模拟输入)
时间扫描为每10ms读取一次。
使用要求2:控制联锁
水泵P1:P1开始按钮按下,水泵启动并持续工作直到P1停止
按钮被按下。
2.如果P1停止按钮被按下,或者排水压力过高则停止工作。
阀门V1:V1的开启按钮按下或者水泵已经开启并已经运行3
秒钟
2.如果V1的停止按钮按下或者水泵没有运行。
使用要求3:通信协议/服务器
对任意外部查询设备发送相应响应数据。
的域模型
下图3-1描述的是PLC的域模型
图3-1PLC的域模型
4.软件模块和基于IEC61131-3标准的工程模块
IEC61131-3标准的软件模型包括由运用该标准及其组态要点定义的语言编写的程
序元素,既组态,资源,任务,全局变量和实例,具体的初始化,其中安装到可编程控
制器系统的程序必须支持该系统。基于IEC61131-3标准的软件体系结构图如图4-1所
示。
结构应用程序
编码生成器构建和下载功能
框架和实时操作系
统
第3页共8页
图4-1基于IEC61131-3标准的软件体系结构
组态,资源,任务
在最高的等级中,针对一个特定问题的控制软件是包含在一个组态系统中,他把PLC
系统所利用的所有资源组织在一起,并提供他们之间交换数据的协议。
资源就是其中的处理设施,能够执行IEC方案,它的定义为,向PLC系统的物理资
源进行任务分配。一个组态中可以有一个或多个资源。组态和资源不会像程序组织单元
那样包含相互指示,但仅仅定义它们的元素之间的关系。
任务是定义为一个能够援引的执行控制单元,他可能发生在一个定期时间段,或者
时间段之后,或者某个变量的上升沿。执行某个组织单位的方案,其中包括程序集和功
能模块。
像其他PLC应用方案一样,我们需要定义复合要求的I/O硬件设备和他的类型,对
于我们研究的案例,包括一个数字输入卡,一个数字输出卡和一个模拟输入卡。配置ST
程序如下:
组态过程控制程序
TYPE
组态元素
组态
资源
任务/运行时程序
程序功能模块
功能模块
功能模块
功能功能
第4页共8页
DISCRETE_DATA:BOOL;(*离散输入的数据类型*)
END_TYPE
TYPE
DISCRETE_16_DATA:ARRAY[1..16]OFDISCRETE_DATA;
END_TYPE
TYPE
ANALOG_DATA:INT(-4095..4095);(*分区域中的数字*)
END_TYPE
TYPE
ANALOG_16_DATA:ARRAY[1..16]OFANALOG_DATA;
END_TYPE
TYPECOMM_CHANNEL
SENDER_IP:UINT;
SENDER_PORT:INT;
REC_IP:UINT;
REC_PORT:INT
END_TYPE
RSOURCERes_1ONCPU001
VAR_GLOBALCONSTANT
NUM_DIGIN_CARD:UINT:=1;
NUM_ALOGIN_CARD:UINT:=1;
NUM_DIGOUT_CARD:UINT:=1;
NUM_ALOGOUT_CARD:UINT:=0;
P1psh:ANALOG_DATA:=P1PSH;(*setpointforPSH*)
END_VAR
VAR_GLOBAL
DV_I_X:ARRAY[1..NUM_DIGIN_CARD]OFDISCRETE_16_DATA;
DV_I_W:ARRAY[1..NUM_ALOGIN_CARD]OFANALOG_16_DATA;
DV_Q_X:ARRAY[1..NUM_DIGOUT_CARD]OFDISCRETE_16_DATA;
(*DV_Q_W:ARRAY[1..NUM_ALOGOUT_CARD]OF
ANALOG_16_DATA;*)
END_VAR
第5页共8页
TASKT1(INTERVAL:=t#50ms,PRIORITY:=3);
TASKT2(INTERVAL:=t#10ms,PRIORITY:=2);
TASKT3(INTERVAL:=t#500ms,PRIORITY:=4);
PROGRAMPumpCtrlWITHT1:PumpP1Control(P1on_off=>
DV_Q_X[1,1],P1startC:=DV_I_X[1,1]P1stopC:=DV_I_X[1,2],
P1disPr:=DV_I_W[1,1]);
PROGRAMValveCtrlWITHT1:ValveV1Control(V1open=>
DV_Q_X[1,2],V1close=>DV_Q_X[1,3],V1openC:=
DV_I_X[1,3],V1closeC:=DV_I_X[1,4],P1startC:=DV_I_X[1,1],
P1status:=DV_I_X[1,5]);
PROGRAMScanInWITHT2:ScanInput();
PROGRAMCommWITHT3:ComSlave();
END_RESOURCE
END_CONFIGURATION
.程序
一个程序是一个功能网络和一个可以通过软件连接交换数据的功能模块,他可以用
任何已经定义过的编程语言来进行编辑,一个程序可以同时读取和写入输入/输出变量
并能实现和其他程序进行通信。执行程序的不同部分,例如执行选择功能模块,也许会
被使用中的任务控制。
对于我们研究的范例,我们有以下的程序:
水泵P1控制
阀门V1控制:用ST语言编写的阀门控制程序除了使用了其他一般的ST编程功
能外,还是用了延迟计时器。
PROGRAMValveV1Control
VAR_INPUT
V1openC:BOOL;
V1closeC:BOOL;
P1startC:BOOL;
P1status:BOOL;
END_VAR
VAR
第6页共8页
Vtimer:TON;
END_VAR
VAR_TEMP
T:BOOL;
END_VAR
VAR_OUTPUT
V1open:BOOL;(*V1MOVtoOpen*)
V1close:BOOL;(*V1MOVtoClose*)
END_VAR
Vtimer(IN:=P1startC,PT:=T#3s);
T1:=;
IF(V1openCORT1)THEN
V1open:=TRUE;
V1close:=FALSE;
END_IF
IF((V1closeC=TRUE)AND(P1status=FALSE))THEN
V1open:=FALSE;
V1close:=TRUE;
END_IF
END_PROGRAM
功能和功能模块
这些是基本的组成部分,包含一个数据结构和算法。
对于我们的范例:
•ReadAnalogIn
所要求的功能模块:在任何的PLC中,从物理I/O卡输入是无可避免的。
FUNCTION_BLOCKReadAnalogIn
VAR_EXTERNALCONSTANT
NUM_ALOGIN_CARD:UINT;
END_VAR
VAR_OUTPUT
ALOGIN1:ARRAY[1..NUM_ALOGIN_CARD]
第7页共8页
OFANALOG_16_DATA;
END_VAR;
ALOGIN1:=ReadAlogIn(NUM_ALOGIN_CARD);
END_FUNCTION_BLOCK
•ReadDigitalIn
•TON
所要求的功能
•ReadAlog
FUNCTIONReadAlog:ARRAY[1..NUM_ALOGIN_CARD]
OFANALOG_16_DATA
VAR_INPUT
NoAlogCards:UINT;
END_VAR
(*功能部分*)
END_FUNCTION
•ReadDig
5通信模型
通过改变变量的值,有许多种方法来实现软件之间的通信。
1)在程序中,变量的值可以由一个程序元素的输出直接连接到另一个的输入,如
图5-1所示。
图5-1程序间变量直接通信
2)变量的值在程序之间传递也可以通过在同一组态中全局变量,如图5-2所示。
这些变量组态系统中被定义为全局变量
3)变量的值也可以通过特定的标准通信功能,在一个程序不同部分、不同程序之
间、在相同和不同的组态系统中、抑或在不同的PLC之间以及可编程控制器与非可编程
控制器之间来进行通信。如图5-3所示。
程序
FB1FB2
FBX
a
FBY
b
第8页共8页
图5-2通过全局变量通信
图5-3通过标准通信功能通信
在我们研究的范例中,我们通过通信功能模块来实现与外部之间的通信,程序如下:
PROGRAMComSlave
VAR
CHAN_ID:COMM_CHANNEL;
CON1:CONNECT;
REQ_SEND:BOOL;
RDATA:ARRAY[0..16]OFBYTE;
SDATA:ARRAY[0..16]OFBYTE;
US1:USEND;
UR1:URCV;
END_VAR;
CON1(EN_C:=1,PARTNER:=‘PC2’);
(*PC2=IDofremotem.partner*)
IFTHEN
Error_Handler();
END_IF
IFTHEN
第9页共8页
CHANNEL_ID:=;
UR1(EN_R:=1,ID:=CHANNEL_ID,
R_ID=’PACK1’,RD_1:=RDATA);
IFTHEN
SDATA;=Respond(RDATA);
US1(REQ:=REQ_SEND,ID:=
CHANNEL_ID,R_ID=’PACK2’,
SD_1:=SDATA);
IFTHEN
Error_Handler();
END_IF
END_IF
IFTHEN
Error_Handler();
END_IF
END_IF
END_PROGRAM
FUNCTION_BLOCKUSEND(*Programmeddataacq.*)
(*Functionbody*)
END_FUNCTION_BLOCK
FUNCTION_BLOCKURCV(*Programmeddataacq.*)
(*Functionbody*)
END_FUNCTION_BLOCK
FUNCTION_BLOCKCONNECT(*Connectionmgmnt*)
(*Functionbody*)
END_FUNCTION_BLOCK
6IEC61131-3标准的主要优势
方便和安全的变量和数据类型
1)局部和全局变量是用来代替硬件地址。该编程系统能够自动区分全局变量和局部
变量。
2)变量保留定义。
3)在PLC系统运行时,数组索引变量的范围和界限值可以被编程系统实时监测。
第10页共8页
模块的扩展
1)模块(POUs)的设计为独立目标体系。这使得它有可能为多种平台模块重复使用。
2)对于避免数据模块间传输过程中的由于机制不同而发生错误,是一个有效的手段。
•VAR_INPUT:Valueofavariable
•VAR_IN_OUT:Pointertoavariable
•VAR_OUTPUT:Returnvalue
•VAR_EXTERNAL:GlobalvariableofanotherPOU
6.3对于PLC组态系统的运行
在一个硬件PLC组态系统中能够有利于任务和方案分配到控制器。
7.总结
我们都知道,理解一个标准,使工业控制产品能够以它为基础,最好是从头到尾由
它来引导使用一个优秀的范例,我们希望我们的研究能够对基于IEC-61131-3标准开发
的软件工程项目有所帮助。
8.致谢
作者感谢Shri.Srivastava,DirectorE&IGroup给我们机会进行PLC方面
的研究。
9.参考摘要
[1].IEC.ProgrammableControllers-Part3:ProgrammingLanguages,
IEC61131-3.TechnicalReport,InternationalElectrotechnical
Commission-Geneva,SecondEdition,2020.
[2].IEC.ProgrammableControllers-Part5:Communications,IEC
61131-5.TechnicalReport,InternationalElectrotechnical
Commission-Geneva,2020.
[3]..Jhon,M.Tiegelkamp.IEC1131-3ProgrammingIndustrial
AutomationSystems,Springer,1995.
毕业设计相关推荐
文库吧 www.wenkub.com
鄂ICP备17016276号-1