版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,ST Language,Basic Course,2,ST Language,Key word If there is any unclear or uncorrected, please feel free to speak out,Basic Course,3,Requirements,Hardware The programming language ST is only available for following programmable controllers:,pCO3 Supernode pCO5 pCO compact,BIOS To support ST langua
2、ge, bios version must greater than 5.0,Software Use a version of 1tool = 2.1.x,4,Creation of a solution ST Language,Choosing : - FBD, the application will be mixed, it will consist of a main with Atoms, Macroblocks . but you can use routines (functions and function blocks) written in the ST - ST, th
3、e application will be developed entirely using ST language,5,Basic concepts,When programming in ST, the application can be organised using three fundamental programming elements generically called Program Organization Units (POU): PROGRAM FUNCTION FUNCTION BLOCK,POU,Note: we can define more function
4、s and function blocks, but only one program main,6,The basic types,The following table lists all the properties of basic types (IECType):,7,Declaration of Global variables,There are two ways to declare Global variables: Variable List Textual mode of ST language,Note: if you want to see the variable
5、in the pGD, please declare the variable in the Variable List,8,Assignment operator :=,Syntax,Assign to a variable:,a constant value the value of another variable the result of an expression.,Varaible_name := expression ;,Note: there is a ; in the end of statement,9,Textual declaration,To declare var
6、iables in ST you have to use the following declaration block:,Note: 1. there is no ; in the end of END_VAR; 2. we can give the default value in the declaration.,10,Rules of the identifiers (variables name),a.z, A.Z 0.9 _,The name of an identifier (variable or constant) can be any combination (see Ex
7、ample) of the characters listed below:,Example Rules to create identifiers.,11,The qualifier CONSTANT,Textual declaration of Constants,The keyword CONSTANT can declare a constant. The constants do not occupy space in memory as the variables During compilation instead of the constant is replaced a nu
8、meric value.,12,Comments,Comment using keyword REGION ENDREGION You can hide several lines of code using the keyword REGION ENDREGION. So increase the readability of the code on the screen. The code is replaced with a comment. Clicking on comment it will appear again the code.,The code comments You
9、can use two ways to make a comment To comment a single code line use “” To comment more code lines use “(*” and “*)”,There is no _ in between END and REGION,13,The qualifier RETAIN,Textual declaration of global variables REATAIN (retentive),Example,Declaration of retentive Global variables.,RETAIN k
10、eyword declares a variable in T-permanent memory.,Organization of the variables.,Note: pay attention of the default value,14,Cast Functions,Syntax,Variable_name := *_TO_*(value);,The conversion functions are used to convert any of the elementary data types to any other. They must be used to make the
11、 data type uniform before a function, where this is required.,15,ST operators,For the evaluation of expressions, always use brackets, this avoids errors in the evaluation of the expressions.,Example,Table of the operators priority,An expression is executed only after the evaluation of the operators
12、priority. The execution order of an expression and its result are influenced by the operators priority.,Suggestion,A:= NOT X AND Y OR NOT J; Increases readability: A:= NOT(X) AND (Y OR (NOT J);,If Z=0 the other variables have not been evaluated. A := Z AND Y AND (NOT J);,16,Conditional statements: I
13、F,IF . THEN . ELSE statement Conditional construct: executes a statement block depending on whether or not certain conditions are satisfied.,Syntax,Exercize,If Expression=TRUE, statement_block is executed Otherwise the conditions in the ELSIF blocks are evaluated Finally, if these are all false, the
14、 statements in the ELSE block are executed.,Boolean (AND, OR, NOT, XOR) Comparison (=, , , =, , =).,Features,IF expression THEN statement_block; ELSIF expression THEN statement_block ; ELSE statement_block ; END_IF;,Note expression contains the operators:,Management of a range -550,950 C with NTC pr
15、obe.,17,Conditional statements: CASE,CASE . OF . statement,Syntax,Conditional construct: selects the statements to be executed depending on the value of an integer expression.,CASE expression OF selector_1 : statement_block; selector_2, selector_3 : statemnt_block; selector_4 . selector_5 : statemnt
16、_block; selector_6, selector_7 . selector_8 : statemnt_block; ELSE statemnt_block; END_CASE;,Example,Speed management of a fan.,18,The Function,It can be comparable to a Black box: it works on a Input parameters configuration, and it always produces in Output the same result for the same Inputs. It
17、lets not repeat many times the same code within the project, as instead it is for macroblocks in FBD environment. At each invocation of the function, the same code will be always executed.,What does a Function do?,It read Inputs, no outputs, but can have a return value It executes the code of the fu
18、nction It writes the result in a Return Value A function doesnt have a memory state It always produces the same result for the same inputs.,The function Add_3,What does a Function contain?,The list of parameters that are passed as inputs Probable Local variables, only for its internal use The code o
19、f the function,What is a Function?,19,FUNCTION statement,The table below lists all properties of a function.,Summary,20,Pass by value (VAR_INPUT),In the pass by value the Actual Parameters are copied in Formal Parameters.,Actual Parameters,Formal Parameters,Modifications dont have effect on Actual P
20、arameters.,21,Pass by Reference (VAR_IN_OUT),Pass by Reference,Actual Parameters,Formal Parameters,Modification,Sometimes it is necessary to modify the variable value passed to the function, and render such modification outside immediately visible. This modality is called Pass by Reference and it is
21、 realized using keyword VAR_IN_OUT. In Pass by Reference the Formal Parameter point to the same cell of memory that contains the value of Actual Parameter.,22,Variables scope,23,RETURN statement,Syntax,The RETURN statement is used to exit from a Function, Function Block or the Program before the end
22、.,FUNCTION My_function list_statements_1; RETURN; list_statements_2; END_FUNCTION,1st Example,2sd Example,In the case of a Function or Function Block, the statement interrupts execution after list_statements_1, and passes control to the calling POU without executing list_statements_2. In the case of
23、 the Program, the statement closes the Program.,24,ARRAY statement,Syntax,Exercize,Array_name: ARRAYelem_1.elem_n OF Type; where:,Simulation,elem_1 and elem_n are INT numbers or constants (they cannot be variables) and represent the limits of the array elem_n = elem_1, the difference +1 indicates th
24、e number of elements in the array Type identifies the elementary data type elements inside the array or Structure type,25,Array Breakthrough (exceeded limits),Example,Run-Time error on Simulator,Run-Time error on pCO Place 2 integer variables on a Mask related to library functions: The position of e
25、rror in the Strategy Editor ST: go in simulation and then press insert High part and Low part,When a variable is used to access the elements of an array, care must be paid to ensure the size of the array is not exceeded. If run-time the index value exceeds the size of the array, this will entail the
26、 re-boot of the pCO.,Note To reset error variables use this library functions:,26,Iteration statements: FOR,FOR . DO . Statement,FOR variable := initial_expression TO final_expression BY increase_expression DO statement_block; END_FOR;,FOR loop executes a statement block from an initial value to a f
27、inal value of the control variable.,Syntax,Example,Counter=10,27,Iteration statements: WHILE,WHILE . DO . Statement,WHILE statement executes a statement block while the expression is true.,Syntax,WHILE expression DO statement_block; END_WHILE;,Example,To search for an element within an array.,28,Ite
28、ration statements: REPEAT,REPEAT . UNTIL . Statement,REPEAT statement_block; UNTIL expression END_REPEAT;,The statements contained in the loop are executed at least once.,REPEAT statement executes a statement block while the expression is true. The loop is executed at least once.,Syntax,29,Iteration
29、 statements: EXIT,Syntax,1sh Example,EXIT statement,To exit by for loop.,EXIT;,The EXIT statement is used exclusively inside WHILE, REPEAT, and FOR statements to interrupt execution of the loop and go to the statement after the end of the loop (END_FOR, END_WHILE, END_REPEAT).,2sd Example,To exit by
30、 nested for loop.,30,Iteration statements,Note: Compare statement While Do and Repeat Until; Compare statement Return and Exit.,31,n-dimensional Array,Syntax,Exercize,Simulation,Note:,Array_name: ARRAY el_1.el_n, el_1.el_m OF Type;,The rules seen for one-dimensional arrays are valid The syntax is us
31、ed to declare a matrix To access array elements, nested FOR loops can be used (see exercize),32,The fields of a structure can be of elementary type, of type structure, Array, n-dim Array, not Array of structures A structure must be instanced, before to be used, in such way comes reserved in memory t
32、he necessary space to its data. The space occupied by a structure is given by the sum of the space occupied by each single fields. In order to access/to modify single fields of a structure the . is used (e.g.: Room_Temp.Temperature). It is possible to assign a structure to another, thus realizing th
33、e copy of the data. Remember the two instances must be of the same type (such as the Arrays).,The data type Structure,The structures are used in order to create more complex user types, of the normal elementary types. A structure is a data type that contains a predefined number of fields, usually of
34、 different types.,33,TYPE STRUCT statement,Allows to define the data type structure.,Definition syntax TYPE structure_type : STRUCT field_1_name : data_type; field_n_name : data_type :=value; END_STRUCT; END_TYPE,Instance delaration sysntax VAR_GLOBAL my_struct1 : structure_type; my_struct2 : struct
35、ure_type :=(field_1_name:=value, fiel_2_name:=value); END_VAR,Example,In simulation it is possible to visualize the instances,Build two structure Cmpr_Info.,34,FUNCTION BLOCK,It uses the potentialities of a function and those of a structure. It can be thought as a Black Box endowed of: Input Paramet
36、ers (pass by Value) or Input_Output Parameters (pass by Reference) Output Parameters Local Variables (accessible only within the FB) It is a object and has a internal memory state Note: Functions dont have memory A FB must be instanced before use, in such way the FB comes statically allocated by the
37、 controller in Ram Memory, in order to reserve the space for its data It is possible to define more instances of the same FB, but the code contained in the application is unique.,What is a Function Block?,Example,Use TON timer in order to activate relay n1 after 2 second.,Use . to access to FB eleme
38、nts:,Use = to write on a variable the FB outputs.,Use := to assign value to the input.,35,FUNCTION BLOCK,Function Block instance Local variables (VAR), are allocate/deallocate inside Stack at every calling of: Program Function A Function Block instance should be declared Global (VAR_GLOBAL) and not
39、Local (VAR). A instance of FB that is declared Local (VAR) could have a different behaviour from that expected.,Example In this example a Globale and Local instance of TON are declared. The Local instance will never succeed to finish the count, because of the internal management of the Local variabl
40、es.,36,FUNCTION_BLOCK instance,FUNCTION_BLOCK functionblock_name (* Input, In_Out, and Output variables declaration *) (* Local variable declaration *) (* Implementation code*) END_FUNCTION_BLOCK,Definition synstax,A Function Block:,can be called more than once inside a Program, a Function or a Func
41、tion Block receives one or more input values (VAR_INPUT or VAR_IN_OUT) and unlike Functions, gives one or more output values (VAR_OUTPUT). the values of the Local variables (VAR) and the input and output parameters in Function Blocks are saved in the memory between calls of the function block, and f
42、rom one program cycle to the next; in the latter case as long as the function block instance has been declared as Global (VAR_GLOBAL).,In the calling POU the instance of the function block must be declared FIRST, so as to allocate the memory required to store the values of the internal variables (e.
43、g.: use VAR_GLOBAL; take care if using VAR). If one of the input parameters is omitted (VAR_INPUT), the function block uses the default value (0 or FALSE in the first program cycle) or the last value used inside the function block. Parameters declared as VAR_IN_OUT cannot be omitted. Recursion is no
44、t allowed.,37,FUNCTION_BLOCK instance,Recursion,Recursion is not allowed, that is a Function Block cannot:,refer directly refer indirectly call a Function or Function Block instance that refer it.,Direct recursion,Indirect recursion,38,FUNCTION_BLOCK instance,Variables scope:,The qualifier RETAIN,If
45、 a Global instance has the qualifier RETAIN, data are saved in T-permanent memory.,39,The properties of a block are listed below.,FUNCTION_BLOCK: Summary,40,ST event is a function with the following restrictions: Has a unique name Has no Return value Has no Input parameters Has no Local variables Ca
46、n only modify Global variables, you can not call Functions or Function Blocks Event differs from other functions, because the name is preceded by the reserved word Event_ (e.g.: Event_incA) There is no limit to the number of events that you can define. Syntax FUNCTION Event_NameEvent /CODE END_FUNCT
47、ION From Mask Editor is possible to execute a ST event, specifing in the Key Function Editor Do_ST_Event statement. Example When the PRG button is pressed, increase a variable. 3 How? In the Startegy Editor ST define the event In the Key Function Editor with DO_ST_Event statement call the event,ST E
48、vent,41,How to use the Add_3 in FBD? In the Solution Explorer add a page to Subroutine ST node Edit Add_3 function code, paying attention to types of Input parameters and Return value. In the Dependencies node of Solution Explorer add Core_ST library. Inside FBD environment From Core_ST library sele
49、ct ST_Call atom to call Add_3 function inside FDB environment. Finally connect variables to pins.,FBD and ST environment,Reminders on FBD environment FBD Environment uses only the basic types (Boolean, Integer/Analog) The ST language is supported by some controllers (pCO3, Suprnodo, ),42,FBD and ST
50、environment,How do you change firm of your Function or Function Block in FBD Strategy Editor? In FBD Startegy Editor I have placed My_Add function, but i have to add an other parameter You have to add the new parameter to My_Add function, and then, you have to select “Update from firm” in FBD Strate
51、gy Editor,1st step Add In3 to My_Add function,2sd step In FBD Strategy Editor “Update from firm”,3rd step In FBD Strategy Editor connect _In3 variable,43,System variable,ST Language uses specific library functions, in order to access to system variables of type: Boolean Integer Syntax Set_SystemVari
52、ableName (Vaule); Variable := Get_SystemVariableName ( ); 1st Example (Boolean) Set_KEY_PRESSED(1); Alarms:= Get_GLOBAL_ALARM( ); 2sd Example (Integer) Set_KEY_PRESSED(1); BMSAddr := Get_BMS_ADDRESS( ); Library access To access library functions press CONTROL+SPACE,44,Base 2, Base 8 and Base 16,A nu
53、mber can be represented also in the bases: Binary (Base 2) Octal (Base 8) Hexadecimal (Base 16) Syntax Variable := Base#Value; Example a:=2#10110001; a:=8#767; a:=16#AF0; Moreover, it is possible to separate the figures with of optional _ , in order to increase the readability a:=2#1011_0001; a:=8#7
54、_6_7; a:=16#AF0; a:=16#A_F_0;,45,Arithmetc statements,ST language can use the following arithmetic operations:,2sd Esempio The use of division operator.,1st Example Arithmetic operator:,46,Numerical statements,Vedi anche,Language ST allows to use the following numerical statements:,47,Debug,There ar
55、e two types: Conditional Breakpoint Breakpoint During the simulation Breakpoints are not active on: Functions never call Variables/Instances never use Example,For debugging the application use the breakpoint.,Debugging keys F5: goes to next breakpoint Control+F10: Step over Control+F11: Step into Co
56、ntrol+Shift+F11: Step out,48,Exercises,Ex1: 在ST中进行浮点数运算。 控制逻辑: 对数学表达式进行运算: A= (IN1+1) / (IN2+1) B= -0.024263A2 + 0.8638A + 0.16655 Vw= -0.0922B2 + 1.154B 具体要求: 在Subroutine ST中编写一个函数块,最终在FBD中调用该函数。分别 给IN1和IN2赋两组数据,看最终Vw的值是否为计算的最终结果。 参考: 需要用到的相关语句:+,-,*,/, *, INT_TO_REAL,REAL_TO_INT.,49,Exercises,Ex2:
57、 使用ST语言写出机组开关机的功能块。 控制要求: 以功能块(Function block)的形式编写该模块 在FBD中调用该功能块 具体要求 功能块的输入 根据机组启动请求来管理机组状态,机组启动的选择方式如下: 通过键盘Keyboard_OnOff 通过plan pLan_OnOff 通过数字量输入Dig_In_OnOff,En_Dig_In_OnOff 通过时间段Schedule_OnOff,En_Sched_OnOff 通过上位机Superv_OnOff,En_Superv_OnOff 通过报警状态Alarms 功能块的输出 变量Unit_OnOff 表示机组的状态。仅当上述功能全部启用,即以下全部条件均为真时(Unit_OnOff=1): Keyboard_OnOff=1 pLan_OnOff 或En_PLan_Onoff=0 Dig_In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026北京大学力学与工程科学学院招聘1名劳动合同制工作人员备考题库及答案详解(名师系列)
- 2026河北保定市消防救援支队次政府专职消防员招录154人备考题库附答案详解(培优a卷)
- 道路工程施工质量保证方案
- 现场作业人员团队协作方案
- 2026江西理工大学高层次人才招聘备考题库含答案详解(完整版)
- 2026云南临沧市耿马孟康中医医院招聘6人备考题库含完整答案详解【夺冠】
- 2026海南海口市美兰区校园招聘教师45人备考题库(一)附参考答案详解【b卷】
- 2026福建龙岩上杭县古田会议纪念馆公开招聘见习人员3人备考题库及参考答案详解(巩固)
- 施工现场绿化恢复方案
- 工程人员流动性管理方案
- 2023浙江工业大学机械原理习题答案
- 中国铁塔股份有限公司代维单位星级评定方案2017年
- 江苏如东1100MW海上风电项目陆上换流站工程环评报告
- 《安全运动促健康》课件
- 日管控、周排查、月调度记录表
- 江苏省无锡市江阴市2023年事业单位考试A类《职业能力倾向测验》临考冲刺试题含解析
- GB/T 5752-2013输送带标志
- GB/T 3146.1-2010工业芳烃及相关物料馏程的测定第1部分:蒸馏法
- GB/T 31087-2014商品煤杂物控制技术要求
- GB/T 30812-2014燃煤电厂用玻璃纤维增强塑料烟道
- 住院医师规范化培训临床技能结业考核体格检查评分表(神经外科)
评论
0/150
提交评论