1、中华人民共和国国家括准可编程序控制器第3部分:编程语言Programmable controllers Parl 3, Programming languages 1 主题内容与适用范围1. 1 主题内容本标准规定了可编程序控制器(PC)编程语言的语法和语义。GB/T 15969. 3一1995本标准规定的PC编程语言有文本语言(指令表(IL)语言和结构文本(ST)语言)、图形语言(梯形图(LD)语言和功能块图(FBD)语言)。本标准还描述了可编程序控制器与自动化系统其他部件之间便于通讯的特征。1.2 适用范围本标准适用于可编程序控制器所用编程语言的打印表示和显示表示,表示所用字符为GB198
2、8字符集字符。在本标准中定义的语言元素允许用图形和半图形表示,但这种表示不在本标准中定义。本标准定义的编程语言元素可以用在交互式的编程环境中,这种环境的详细说明超出了本标准的范围;但是这种环境应该能够以本标准规定的格式产生文字或图形程序文件。程序输入、测试、监视、操作系统等功能在GB/T15969. 1中规定。1.2.1 软件模型图1.2. 1中示出了基本的高级软件元素及其相互关系。这些元素是程序、功能块、组态、资源、任务、全局变量和存取路径。使用本标准定义的语言可以对前两个元素进行编程,按照本标准条款2.7中规定,可以对其余的元素进行组态。组态这个软件元素对应于GB/T15969.1定义的P
3、C系统和虚拟制造设备(VMD)。资源这个软件元素对应于GB/T15969. 1定义的信号处理功能及其人机接口功能和传感器和执行器接口功能。每个组态包含一个或多个资源,每一个资源又包含一个或多个任务和程序。一个程序可以包含零个或多个功能块或本标准中定义的其他软件元素。通过GB/T15969.1中定义的操作员接口功能、编程、测试和监视功能,或操作系统功能,可以启动和停止组态、资源和任务的运行。因此这些元素如GB/T15969.1中定义的,为程序启用(PROGRAM INVOCATIONSlo启动或停止某个组态或资源,等价于启动或停止该元素所包含的所有任务。程序、任务、资源、全局变量、存取路径(及其
4、相应存取优先权)和组态能通过GB/T15969.1中定义的通讯功能装入或删除,因此,这些元素属于本标准中所定义的范畴(DOMAINS)。组态或资源的装入或删除应等价于它所包含的所有元素的装入或删除。国家技术监督局1995-12-29批准1996-10-01实施232 GB/T 15969.3-1995 构形资源资源曰曰囚E日曰, , r 曰功能块-变量迸出路径:1 变量图1.2. 1 软件模型1- 2. 2 通讯模型图1.2. 2示出了变量值在软件元素间通讯的各种方法。如图1.2. 2(a)所示,在一个程序中的变量可以直接通讯,只要将一个程序元素的输出接到另一个程序元素的输入即可。这种连接用图
5、形语言表示就显得直观,而用文字语言显得隐含。同组态中两个程序变量之间的通讯可通过全局变量进行,例如图1.2. 2 (b)中图示的变量X。该变量在组态称之为全局的,而在程序中如条款2.4.2中所规定,则称之为外部的。如图1.2.2(c)中所示,用条款2.5. 2. 3. 5中定义的通讯功能块,变量可在一个程序中的两个不同部分之间,同组态或不同组态中的两个程序之间进行通讯。1.2.3 编程模型PC编程语言元素在本标准中所出现的子条款,按如下分类=数据类型(2.3)程序组织单元(2.5)功能(2.5.1)功能块(2.5.2)程序(2.5.3)顺序功能图(SFCl元素(2.6)组态元素(2.7)全局变
6、量(2.7.1)资源(2.7.2)任务(2.7.3)2:n GB/T 15969. 31995 程序AFB! FB2 I FB_X I I FB_Y I I t-一-一一寸b I (a) 掏形C程序AVAREXTERNAL X,BOOL END-VAR 程序BVAREXTERNAL X,BOOL END-VAR FB! 曰-XVARGLOBAL _ X,BOOL ENDVAR 一一一x一曰) ,。( 构形Cr飞序A构形D程序E连接CHl (c) 图1.2. 2 通信模型(a) 程序内的(b) 程序阔的/组态内的1 OUT; INl OR IN2 OR .OR INn 7 XOR 2K+l OU
7、T,INl XORIN2 XORXOR INn 8 NOT 按位布尔取反注1)该符号在文字语言中适合用作操作符,如表3.2.2和3.3.1中所示。2)这些符号在文字语言中不适合用作操作符。3)约定1:11,IN2INn以从上到下的次序指输入,OUT指输出。的布尔类型信号的图形取反也能完成,如表2.5.1.1-1中所示。2.5.1.4.4 选择和比较功能注3) 1) 2) 2) 4) 选择和比较功能对于所有数据类型应是超载的。选择功能的标准图形表示、功能名称和描述应如表2.5. 1. 4. 4-1中所示。2S8 GB/T 15969.3-1995 序号符能一功一择一选准一标一lE A哑- A件晶
8、. IE . Fh胃。-表一号解释000 ANY 二进制选择zOUT, INO,IF GO OUT,INl,IF Gl 例A,=SEL(G,O电INO,X,INl5),(ST语言见条款3.3)1 ANY ANY 可扩展的极值功能OUT, * * * INl ,IN2INn 这里*是MIN或MAX例,A,MIN(B,C,D),(ST语言见条款3.3)2 AN Y. ANY. 3 ANY ANY ANY ANY 限值器OUT , MIN(MAX(IN ,MN) ,MX) 例,A,LIMIT(lN, B,MN,军队MX,5),(ST语言见条款3.3)4 ANY INT ANY ANY ANY 可扩展
9、的多路转换器g输入K选N个输入中的个例z条款3.3定义的ST语言中语句:A, MUX(K, O,INO, B,IN1,二C,IN2, D), 与A:=B;具有相同的效果ANY 比较功能的标准图形表示、功能名称和符号、以及描述应如表2.5. 1. 4. 4-2中所定义。所有比较功能(除NE外)应是可扩展的。位串数据的比较应从最高有效位到最低有效位逐位地进行,并且较短的位串当与较长的位串比较时,应在短串的左边用零填充,那位串变量的比较应与无符号整数变量的比较具有相同的结果。表2.5. 1. 4. 4-2 标准比较功能一般形式用法举例-r寸77-一酬Lc*) -一L_一回-A , GT(B,C,D)
10、, 或A, (BC)&CCD), (ST语言见条款3.3)(* * *)一一名称或符号(*)一一见注1)259 GB/T 15969.3-1995 续表2.5. 1. 4. 4-2 序号名称符号描述5 GT 减序列zOUT , CIN1IN2)&CIN2JN3)&CINn-.lINn) 6、GE 单调序列g OUT , (lNl IN2)&CIN2二IN3)&(INn-lINn)7 EQ 相等OUT , (INl IN2)缸(lN2IN3)&(lNn-1 INn) 单调序列8 LE 不等于(不可扩展)OUT, (111 10 2.5.2 功能块为了PC编程的方便,功能块是当执行时产生一个或多个
11、值的一个程序组织单元。一个命名为INSTANCE弓的(拷贝)多功能函数块是能够建立的,每个实际例子应拥有一个有关的标识符(实例名称) 并包含其输出和内部变量,可能还应包含其输入变量的一个数据结构。这个数据结构的输出变量和必要的内部变量的值应从功能块的一次执行并保持到下一次执行;因此具有相同变量输入参数)的一功能块的调用不一定总是产生相同的输出值。262 G/T 15969.3-1995 在一个功能块实例的外部只有输入和输出变量是可存取的,即功能块的内部变量对功能块的用户是隐含的。应按条款3中为文字语言所定义的,或根据条款4中为图形语言给出的网络求值规则,或在条款2.日中所定义的执行控制元素的控
12、制下调用一个功能块操作的执行。功能块类型说明的范围应是全局性的,即任何己说明的功能块,如图1.2. 3中所示,都能在另个功能块或程序的说明中找到实例。个功能块实例的范围对应于实例化的程序组织是局部的,除非它在条款2.7.1中所定义的一个VARGLOBAL块已被说明是全局的。正如条款2.5. 2. 2中所说明的,一功能块实例的实例名称如果在条款2.4. 2所定义的VARIN PUT说明中被说明为输入变量,或在VARIN OUT说明中被说明为一功能块的输入/输出变量,它就能被用作一功能或功能块的输入。见条款2.5.2.1 如图2.5.2.1所说明,一功能块实例应按下面所说的建立:文字形式,应用VA
13、R.ENDVAR结构中功能块说明来说明一个数据元素。这与应用条款2.4.2中所定义的,结构化数据类型是相同的。图形形式,应用功能块的图形表示,它遵循条款2.5.1.1给出的功能表示规则,在块的内部有功能块类型名称且在块的上面有实例名称。另外,正规的输入和输出参数应总是按条款2.5.1.1中所定义的表耳可。注如果表2.5.1.1-1中所定义的任何两个图形取反的特性中任意一个作为功能块被支持,它也应支持条款2.5.1中所定义的功能。反之也一样。%IXl %IX2 图形表示(FBD语言)FF75 %QX3 文字表示(ST语言)VAR FF75 ,5R END_ VAR(*说明*) FF75 (51
14、, %IXl.R %IX2) , (女调用*)%QX3 , FF75. QC*赋值输出六)图2.5.2.1功能块实例如图2.5.2.1所示,一个功能块实例的输入和输出变量能被表示为条款2.3.6.1所定义的结构数据类型的元素。除非从功能块的内部,否则不允许给功能块的输出变量赋值。只有当输入作为功能块的调用部分时,给功能块的输入赋值是允许的。表2.5.2.1使用图2.5.2.1中所示的类型SR的功能块FF75总结了功能块输入和输出的允许用法,举例是用ST语言表示的。表2.5.2.1功能块1/0参数用法举例用法在功能块内在功能块外输入读IF 51 THEN 不允许1).2) 输入写不允许1).3)
15、 FF75C51 , %IX1.R , %IX2) , 输出读Ql,Ql AND NOT R %QX3,FF75.Ql 输出写Ql,1 不允许1)注t1)该表中列为不允许的那些用法能导致与执行错误有关的、不可预测的副作用。2)读一功能块的输入可以依靠GB/T15969.1中定义的通讯功能、操作员接口功能、或编程、测试和监测功能等梁完成。3)如条款2.5.2.2中所说明的,在一个VARIN OUT块中所说明的一个变量功能块肉的修改是允许的。263 GB/T 15969. 3-1995 2.5.2.2说明如图2.5.2.2-1中所说明的,应使用与条款2.5.L 2为功能定义的相同方式以文字或图形说
16、明功能块时,有下列差别.a. 用于功能块说明的限定关键字应是FUNCTION-BLOCK-ENDFUNCTION BLOCK。b. 在文字说明中,表2.3.1中所列的EDGE数据类型能用在输入说明中。这种类型的数据元素在功能块体中应被用作布尔变量,并仅在对应的功能块输入从布尔值口到布尔值.1的转换时刻才具有布尔值1气关于EDGE输入数据类型表2.5.2.3.2中所说明的结构应使用在图形说明中。当使用GB1988字符集时,大于气)字符应在功能块的侧面。当采用图形或半图形表示时,GB4728. 12用于动态输入的约定应被使用。当一功能块实例的EDGE输入要求下降沿时,应使用表2.5. 2. 3.
17、2中所说明的记号。c 一功能块能具有一个以上的输出参数,输出参数用条款2.4.2中定义的VAROUTPUT. END VAR结构以文字说明,或按图2.5.2.2-1中所示的以图形说明。d. 条款2.4.2中定义的RETAIN限定词能用于个功能块的内部变量和输出变量。e. 通过VARIN OUT或VAR EXTERNAL结构向功能块传递变量值能从功能块内修改。f. 通过VARIN ,VAR IN OUT,或VAREXTERNAL结构,其名称被传入功能块实例的输出值是可存取的,但不能从功能块内修改。耳其实例名称通过VARIN OUT或VAREXTERNAL结构可以进入功能块的一个功能块能从功能块的
18、内部调用。这些特性总结在表2.5.2.2中。FUNCTION BLOCK DEBOUNCE VAR INPUT lN,BOL, DB TIME,TIME , END VAR VAR OUTPUT OUT ,BOL; ET OFF,TIME; END VAR VAR OB ON ,TO:-! , DB OFF,TON , OB FF,SR , END VAR DB ONC!N, IN ,PT , OB TIME) , OB OFFCI:-!; IN ,PT; DB TIME) , D FF(SLDB (l:-I.Q,R,DB OFF.Q)事ET OFF,D OFF.ET; END FUNCTIO
19、N BLOCK 26占1) N外部接口六)(中内部变量*)(女和FB例子*)女功能块实体女)GB/T 15969.3-1995 FUNCTION_BLOCK DEBOUNCE IN OUT BOOL TIME DB_ TIME ET_ OFF DB_ON IN DB_OFF DB TIME END_FUNCTION_BLOCK BOOL TIME DB_OFF ET_OFF 2) 六外部块体*)OUT(会功能块体去)图2.5.2.2-1功能块说明举例注,1)使用ST语言(条款3.3)的文字说明。2)使用FBD语言条款4.3)的图形说明。表2;5. 2. 2 功能块说明特性序号描述举例1 关于内
20、部变量的RETAIN限定词VAR RETAIN X,REAL, END VAR 2 关于输出变量的RETAIN限定词V AR OUTPUT RET AIN X,REAL, END VAR 3 输入/输出说明VAR IN OUT X ,INT, END VAR X,X十1,4 功能块实际名称作为输入VAR IN 1 TMR,TON, END VAR EXPIRED, 1 TMR. Q , 5 功能块实际名称作为输入/输出VAR IN OUT 10 TMR,TOF, END VAR 10 TMR(lN,A VAR,PT,TttIOS), EXPIRED,IO TMR.Q, 265 序号| 描述6
21、I功能块实例名称作为外部变量GB/T 15969.3-1995 续表2.5.2.2V AR EXIERNAL EX TMR,TOF, END VAR 举例EX TMRCIN,A VAR,PT,T#IOS), EXPIRED,EX_ TMR.Q, 注z假定在这些例子中,变量EXPIRED和A_VAR已被说明成BOOL类型的。(a) INT INT LNT FUNCTION BLOCK ACCUM VAR IN OUT A,INT, END VAR VAR IN :二J-AA,INT, END VAR A,A十X,XI X2 X3 Cb) XI X2 (c) (d) XI X2 (a)图形和文字说
22、明,(b).(c)合法用法p(d)非法用法。ACCl ACCl ACC X3 X4 END FUNCTION BLOCK 注象VAR ACC,INT, Xl ,INT, X2 ,INT, END VAR 这样的说明被假定ACC2 注=对ACC.Xl,X2,X3.X4假定了他)中的说呢ACC C*非法用法*六六图2.5.2.2-2输入/输出变量用法举例ACC 如图2.5. 2. 2-2中所说明的,只有变量或功能块实例名称能通过VAR_IN_OUT结构传入一功能块,即功能或功能块输出不能通过这个结构传递。这是为了防止这些输出的非故意修改。但VARIN 266 GB/T 15969.3-1995 O
23、UT结构的链接是允许的,如图2.5.2. 2-2(C)所示。2.5.2.3 标准功能块所有PC编程语言的共用功能块在本条款中给出定义。本条款中展示了标准功能块的图形说明,条款2.5.2.2中所规定的等价文字说明也就能给与表示。如表2.5. 2. 3. 1中的举例。2. 5. 2. 3. 1 双稳元素标准双稳元素的表示和功能块体如表2.5. 2. 3. 1中所示。功能块体用条款4.3中定义的FBD语言规定。这些元素的表示符号尽可能选成与IEC617-12的符号12-09-01和12-09-02一致。序号表示1 BOOL-BOOL-Z BOOL-BOOL 表2.5. 2. 3. 1 标准双稳功能块
24、双稳功能块(置位要素)BOOL 双稳元素(复主要素)BOOL Rl S Ql 功能块体注=输出变量Ql的初始状态应是布尔变莹的正常缺省值零。表2.5. 2. 3. 1 (续)序号表示功能块体3 测试和置位不可中断的)C*ST语言-条款3.3女)VAR X ,BOOL,END VAR BOOG BOOI. Q,X, IF T THEN X.l EI.SIF R THEN Q,o, X,O ENDIF 注.该功能块是用来控制存取操作系统资源。因此,功能块体中最开始的两个语句为Q,X, IF T THEN X,l, 应是不可中断的。2.5.2.3.2 边沿检测Ql 标准边fr检测功能块的图形表示如表
25、2.5. 2. 3. 2中所示。从该功能的一次执行到下次执行期间Q应保持布尔1值,随着CLK输入的0到1的跳变,在下一次执行时应返回到0。267 GB/T 15969. 3-1995 表2.5. 2. 3. 2 标准边沿检测功能块序号表示功能块体1 FUNCTION BLOCK TRIGGER BOOL-一一斗lflRK IGGER Qi 一一-BOOLVAR INPUT CLK ,EDGE, END VAR VAR OUTPUTQ,BOOL , END VAR Q,CLK, END FU;fT!ON BLOCK 举例解释TRIG5CCLK , B), 文字调用主,TRIG5.Q,CST语言见
26、条款3,3) TRIG5 B一一一一lTLRK I3GERQ 1 一-A图形调用CFBD语言见条款4.3)TRIG5CCLK,;OT B) , 文字调用(下降沿)LI,TRIG5.Q, CST语言见条款3.3)TRIG5 B O l LRKI3GER 卡一一一一-A图形调用(ZE沿)(FBD语言见条款4.3)2.5.2.3.3 汁数器具有有关输入和输出类型的标准汁数器功能块的图形表示如表2.5. 2. 3. 3所示。这些功能块的操作在以条款3.3定义的ST语言书写的相应功能块说明中给出规定。序号268 BOOL. BO(、IINT 表2.5. 2. 3. 3 标准计数器功能块表示CTU CU
27、Q R pv cv BOOL INT 功能块体c*加计数器六IF R THEN CV ,O, ELS IF CU AND(CVPV), END FUNCTION BLOCK 序号|Z 3 GB/T 15969. 3 1995 续表2.5. 2. 3. 3 表示BBOOOOLL 一-一-一-一一-一44IEPLV D T D Q 一-BOOlINT -1 PV CV 1-一一IN1BOOG BOOG BOOG BOOI士BOOL BOOL INT 功能块体(六减计数器*)IF LD THEN Cv, PV, ELS IF CD AND(CvPV m.) THEN Cv,CV-l END IF,
28、Q,CCvPVm,.) THENCV,CV.-l END IF, QU,(CVPV), QD,(CVtl t3tl +tSX(发送传输时间)t4=t3十tRD(回答方处理延迟t5t4-t-tRA(回答接受时间)t6二t4t7=t5十tRX(回答传输时间)事件识别tO:在SE:.ID.REQ处请求发送t1 :请求发送接受t2请求方应答接收发送t1 .t3请求方的SEND.SD输入对回答方的RCV.RD输出发送t3传输完成,回答方的RCV.RD输出有效t4回答方的请求发送RCV.SD输入t5,回答方的请求发送接受t6 :回答方应答接受发送t5口。回答者的RCV.SD输入对请求者的SEND.RD输出
29、发送t7传输完成,请求者的SE:.ID.RD输出有效注SEND和RCV块的RDY输出应分别在REQ或RESP输入上究沿以后在块的第次执行期间变JIJ0状态。RDY输出应保持在O直到块的下一次执行。图2.5. 2. 3. 5. 1 联锁信息交换定时2. 5. 2. 3- 5. 2 信息分配和收集本条款中定义的功能块在一对一或多点连接(即,能支持发送或接收广播信息的个连接)内提供一非对称、单方向的信息传输服务。这些块能用来向PC系统中的功能块和程序或非PC系统中等价功能实体发送变量值。在支持本条款所定义功能块的一个可编程序控制器系统中,GB/T15969.1中定义的操作系统和/或通讯子系统应提供下
30、列服务za. 基于由串类型的功能块输入CNXN标记的一个公共连接描述符,在请求方使用的一个或多个USEND功能块和接收方使用一个或多个URCV功能块之间建立一个连接。这应包括确保由接收方274 GB/T 15969. 3-1995 所期望的连接描述符和数据元素的数目,类型和顺序与由请求方要求发送的数据元素的连接描述符、数目、类型和顺序相一致。b 提供一个具有下列特性的传送服务g当请求方请求时,从请求方向接收方传送一信息。向接收方报告来自请求者的新的有效数据的可用性。向请求方报告信息已被发送(注:这种服务不保证所有接收器接收的信息没有错误)。 当一个处理不能完成时,通知请求方,并报告原因。标准信
31、息分配和收集功能块的图形表示,及有关输入和输出的类型和功能应如表2.5. 2. 3. 5. 2所示。这些功能块的正常操作应基于上面定义的系统功能与图2.5. 2. 3. 5. 2给出的定时图对应。在异常操作时,每个块的错误输出应被置成1.而每个状态输出应呈现表2.5. 2. 3. 5. 2中定义的合适值。表2.5. 2. 3. 5. 2 用于信息分配和收集的标准功能块描述USEND BOOL EN mL三酬LBOOL REQ ERROR BOOL STRING CNXN STATUS INT ANY SDI ANY SD2 ANY SDN 功能块USENDVAR INPUT EN ,BOOL;
32、 REQ ,EDGE; CNXN ,STRING; SD1,ANY; SD2 ,ANY; (提单方向数据传送请求方提)C*l使能,0=复位女)C*请求发送输入有效女)C*连接描述符*)C*混合类型,可扩展数据发送女)SDn ,ANY; END VAR VAR OUTPUT RDY ,BOO1.; ERROR ,BOO1. STATUS,INT; END VAR C*注;n可以是零*)(*传送完成并成功,或不成功*)六不成功完成指示器六)(六O无错,其他码=出错原因六)用于USEND功能块的状态码致不误型错类障关或故有数统误素系错元子行错据讯执无数通与值一023川队6 解释275 GB/T 15
33、969. 3 1995 续表2.5. 2. 3. 5. 2 序号描述2 URCV BOOL EN RDY BOOL STRIN CNXN ERROR BOOL STATU INT RDl ANY RD2 ANY RDn ANY 功能块URCV(奖单方向数据传送接收方祷)VAR INPUT EI,BOOL; c* l使能.0=复位女CIXN ,STRING , (女连接描述符六)END VAR VAR OUTPUT RDY ,BOOL; (为所接受的信息*)ERROR ,BOOL (女不成功指示器*)STATUS ,INT; (女O无错,其他=出错原因六)RDl , ANY; (* (亘古类型.
34、可扩展接收的数据*)RD2 ,ANY; C*必须与请求方的USElD.SD输入号和类型匹配*); Rfl口,ANY,END VAR 用于lJRCV功能块的状态码值解释。元错2 数据元素数目或类型不一致3 通讯子系统故障b 发生数据丢失6以上与执行错误有关276 GB/T 15969.3-1995 请求方的USEND块假走EN二1)REQ (0 (2 tl t3 接收方的URCV块2RDY t3 t5 EN t4 t6 定时关系。tl =tO十tSAt2t1 t3tl +tSX t4=t3十tRDt5t4 t6t5 (发送接收延迟)事件活动识别:tO:在USEND.REQ时请求发送tl :请求发
35、送接收t2,请求方响应接受发送(发送传输时间)(接收方处理延迟)tl叫3请求方的USEND.SD输入发送到应答方的URCV.SD输出t3传输完成,接收方的URCV.RD输出有效t4,接收方复位URCVt5,URCV复位完成t6,URCV能够接收新信息注,USEND和URCV块的RDY输出应分别在REQ的上升沿或EN输入的下降Iii之后块的第一次执行期间变到0状态。RDY输出应保持0状态,直到块的下次执行或稍迟些。因2.5. 2. 3. 5. 2 信息分配和收集定时2. 5. 2. 3. 5. 3 其他通讯功能块以后再考虑。2.5. 2. 4 赋值功能块表2.5.2.4中所示的赋值功能块能在条款
36、4中所定义的LD和FBD语言中使用。该功能块应是可扩展的。如图2.5.2.4中所示,该功能块的执行效果应是按对赋值(INl到OUTl,IN2到OUT2,等等);因此,输入数必须等于输出数,且每个输入/输出对的数据类型必须匹配。277 GB/T 15969. 3-1995 序号块一能T功一值一赋一qJ An-士一口一语一形一图-A4- qL-i一号- QL-表一符注ENjOK恃性的规定应如表Z. 5. 1.1-2中定义的EN INl IN2 口KOUT! OUT2 BOOL ANY ANY INn OUTn ANY 2 MOVE EN OK INl OUTl IN2 OUT2 BOOL ANY
37、ANY INn ANY 、FBD语言举例(见条款4.3)等价的ST语言Y;=X; 123 XXXX EN 。123 YYYY IFX THEN Yl,Xl;Y2,X2; Y3,X3; END IF 图2.5.2.4赋值功能块举例2.5.3 程序在GB/T15969.1中程序被定义为所有编程语言元素和结构的一个逻辑集合,它们对于加强一个由PC系统控制的机器或过程所要求的信号处理是必需的。本标准条款1.2. 1描述了程序在可编程序控制器总体软件模型中的地位,条款1.2. 2描述了程序间和程序内通讯可用的方法,条款1.2. 3描述了程序开发的总过程。如附录F条款F8中所示的,一个PC程序说明应由下列
38、部分组成2a. 关键字PROGRAM,并跟有一个给出程序名称的标识符。b. 说明部分,包括:使用条款2.4.2中所定义的VAR _ INPUT ,V AR _ OUTPUT, V AR和VAR EXTERN AL (如需要的话)结构的变量说明和初始化,这些结构能利用标准的或用户定义的数据类型,或二者都用。如果需要在条款2.5.2.1中定义的功能块具体说明,可使用标准的或用户定义的(或二者都用)功能块类型。 用本部分定义的PC编程语言之一写成的一个程序体(PROGRAMBODY) ,规定由程序要完成的处理过程。d. 终止关键字ENDPROGRAM。278 GB/T 15969.3-1995 假定
39、派生数据类型、功能和功能块的说明己事先完成并可由程序使用,例如在库中;今后在程序中不应包括这样的说明。使2.6顺序功能图(SFCl元素2.6.1 简述:出于执行顺序控制功能的目的,本条款定义了顺序功能图(SFCl元素,用于划分以本标准定义的语言之一书写的PC程序组织单元的内部组织。本条款中的定义由IEC848派生,并做了必要的改动,以把来自一个文件标准的表示转换成一组用于PC程序组织单元的执行控制元素。SFC元素提供了一种把一个PC程序组织单元划分成一组由相互连接的步(STEP)和转换(TRANSITIONS)的方法。与每个步有关的是一组动作(ACTIONS),而与每个转换有关的是有关的一个转
40、换条件(TRANSITIONCONDITIONl。因为SFC元素要求贮存状态信息,使用这些元素能组织起来的唯一程序组织单元就是功能块(FUNCTION BLOCKSl及程序(PROGRAMSl。如果一个程序组织单元的任何部分被划分成SFC元素,那么整个程序组织单元也应如此划分。如果对一个程序组织单元没有给出SFC划分,那么整个程序组织单元应被认为是在程序调用控制下执行的一个单步。2.6.2步CSTEPSl。一个步代表一个状况,在该状态中,程序组织单元的行为相对于其输入和输出遵守一套由步的相关动作定义。在任何给定时刻,一个步要么有效,要么无效;程序组织单元的状态、自有效步的置位和其内部变量及输出
41、变量的值定义。TRAN78 4a 4b 二iJJ二二l:-IX2.4 到IX2.35 I STEP STEP7 , EJD STEP TRAJSITIOJ FROM STEP7 TO STEPS %IX2. 4 &.%IX2. 3 END TRA刊SITIOJSTEP STEP8 ,EJD STEP 自ISTEP STEP7 , END STEP 282 TRANSITlOJ FROM STEP7 TO STEP8 LD %IX2. 4 AND %IX2. 3 EJD TRAJSITION STEP STEPS , END STEP TRAN78 连接符的使用前驱步转换连接符后继步转换条件g用
42、LD语言或用FBD语言描述使用ST语言的文字等价体(1斗使用IL语言的文字等价体(1)GB/T 15969. 3-1995 续表2.6.3序号继例描述7 、转换名称的使用2前驱步转换名称后继步7a 队川MH| 使用LD语言的转换条件END TRANSITION 7b TRANSITION TRAN78 -L 使用FBD语言的转换条件%IX2.4 TRAN78 END TRANSITION 7c I TRANSITION TRAN78 LD %IX2. 4 AND %IX2. 3 ST TRAN 78 END TRANSITION 使用IL语育的转换条件7d I TRANSITION TRAN7
43、8 ,%IX2. 4 &. %IX2. 3 END TRANSITION 使用ST语言的转换条件注2如果表2.6.2的特性1被支持,那么该表的特性l、2、3、4或7中的一个或多个应被支持。如果表2.6.2的特性2被支持,那么该表的特性5、6或二者都被支持。2.6.4 动作(ACTION)。每个步骤都将涉及零个或多个动作。具有零个有关动作的步将被认为具有等待功能(即:等待一个后继转换条件)。一个动作可以是一个布尔变量、条款3.2中定义的IL语言中的一组指令(INSTRUCTIONS)、条款3.3定义的ST语言的一群语句、条款4.2中定义的LD语言的一群支路,条款4.3中定义的FBD语言的一群网络
44、,或由条款2.6定义的元素构成的一个顺序功能图。FC)。动作应通过条款2.6.4.1中定义的一个或多个功能说明,并且应通过条款2.6.4.2中定义的文字步体(TEXTUALSTEP BODIES)或图形动作块与步联系起来,动作块表示的详细情况在条款2.6.4.3中283 GB/T 15969.3-1995 定义。动作的控制将由条款2.6.4.4中所定义的动作限定词(ACTIONQUALIFIERS)表示。2.6.4.1 说明支持SFC元素的一个PC执行过程应提供一个或多个表2.6.4.1中为说明动作所定义的结构方式。一个动作的说明范围对于包含说明的程序组织单元应是局部的。表2.6.4.1动作的
45、说明序号特征1 在个VAR或VAROUTPUT块,或其图形等价体中说明的任何布尔变量,都可以是个动作。举例特征ACTION_ %IXl %MX3 S8.X %QX17 2 H| 11 i-户一图形说萌%MXIO (LD语言见条款4.2)EN OK 5 C LT D ACTION_4 %IXl %MX3三主古-QXI7S8. X 图形说明3 SR (FBD语言见条款4.3)C QJ %MXI0 D I LT卜SIACION ACTION 4 QXI7 %IXI &. %MX3 &. S8. X , 文字说明4 FF28(SI , (CRST S_FF 厂T RST RST SD_ERR SL_
46、ERR DS_FF SD_Q SL_Q SILERR SD_Q SLERR 图2.6. 4. 5-1 (b) 动作控制功能分程序体(对用户是不可见的)ERR Q 289 GB/T 15969.3-1995 FUNCTION BLOCK AA (*动作联告*JVAR INPUT AQi:ACTION QUALlFIER; * (来自先前联合的输入*)Ti:TIME. X,BOOL,(女当前联合的状态*)AQ , ACTION QUALIFIER,(女来自当前联合的输入女T,TIr-.在E,END VAR VAR UTPUT AQi:ACTION QUALIFIER. Ti:TIME: END V
47、AR IF X THEN IFCAQi=NIL)THEN AQo:=AQ;To:=T; ELSE AQo:=ERROR.To:=t#OS;END IF; ELSE AQo: =AQI;To: =TI; END IFj END FUNCTION BLOCK 国2.6. 4. 5-2 功能块AACAction Association) (对用户是不可见的)HV_BREAKER STAR工INDICATORRUNUIMONITOR STAR飞WAITADVANCE_ STARTER STARTER_ ADVANCED ST ARLMONITOR RETRACT_STARTER ST ARTERRET
48、RACTED START _MONITOR ST ART _ INmCA TOR RUNUP MONITOR 图2.6. 4. 5-3(a) 动作控制举例SFC表示注g完整的SFC网络和及有关的说明不在这个例中示出。290 GB/T 15969.3 1995 叫二-HV_BREAKER(女见闺女5血气三-ADVANCE_STARTER 1) 求值推迟操作注:修改符的解释和表达式求值见前文。1)这些操作符应如条款2.5.1.3中所定义的要么是多载的Cverloaded),要么有确定类型(typed)。当前结果和操作数应具有相同的类型。2)当前结果的值是布尔l时,这些操作才被执行。3)功能块名称跟有条款3.2.3所定义的一个用括号括起来的自变量表。3.2.3 功能和功能块条款2.5.1中所定义的功能应通过在操作符域中放置功能名称被调用。当前结果应被用作功能的第一个自变量,附加自变量如需要的话,应在操作数域中给出。由一个关于成功执行复位指令或到达功能物理终端的功能所返回的值应成为条