STSTSTST语语语语言言言言概概概概述述述述ST语言在图形编程中和其它图形编程语言组合使用。实现了IEC1131-3
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的一个子集。使用方法使用方法使用方法使用方法在工程中加入ST语言段落。可以在梯形图和功能块图中插入文本代码模块。在模块中用ST语言编程。可以在顺控图中的步的操作中使用=操作限定词,然后可以用ST语言编程。在顺控图的转换条件中可以使用ST语言的逻辑
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式来指定条件。在SFC编辑器中,当指定转换条件时可以使用ST语言逻辑表达式。在操作中用=操作符可以使用ST的语句,双击该条操作即可弹出编辑界面。注意注意注意注意:使用循环语句会明显增加编译时间,为获得更快的编译速度建议尽可能不使用WHILE语句并且少使REPEAT/FOR语句。STSTSTST语语语语言言言言语语语语法法法法ST语言在图形编程软件中和其它图形编程语言组合使用。实现了IEC61131-3标准的一个子集。支持多种数据类型,支持函数、结构和数组,可以操作各种系统变量。表表表表达达达达式式式式 表达式为变量、操作符、常量、函数的组合,求值结果为单个值。 表达式的求值按运算符的优先级进行,优先级高的运算符先被处理。相同优先级的运算符按从左到右的顺序执行。 以下为几个合法的表达式举例: A+B*(C-3)+FUNC1(2,D) B1 FUNC1()使用方法使用方法使用方法使用方法变量、函数等标识符的命名必须满足下列条件:�以英文字母开头;Page1of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm续以英文字母、数字或下划线;�字符长度最多为24个字符。标识符包括变量、函数、功能块、常数。关键关键关键关键字字字字运运运运算符算符算符算符按运算优先级从高到低有:关键字描述CASE…OF…ELSE…END_CASECASE语句BOOLWORDDWORDINTLONGUINTULONGSFLOATFLOAT数据类型EXIT终止循环FALSE逻辑假FOR…TO…BY…DO…END_FORFOR语句FUNCTION…END_FUNCTION函数定义FUNCTION_BLOCKEND_FUNCTION_BLOCK功能块定义IF…THEN…ELSEIF…ELSE…END_IFIF语句ON逻辑真OFF逻辑假REPEAT…UNTIL…END_REPEATREPEAT语句RETURN函数返回TRUE逻辑真VAR…END_VARVAR_INPUT…END_VARVAR_OUTPUT…END_VAR变量定义WHILE…DO…END_WHILEWHILE语句运算符描述类型优先级()表达式运算 9.取结构成员 8[]取数组成员 8-单目负 7NOT取反逻辑运算7Page2of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm语语语语句句句句以下为允许的语句列表。*(MUL)乘算术运算6/(DIV)除算术运算6MOD取余算术运算6+(ADD)加算术运算5-(SUB)减算术运算5>大于比较运算4>=大于等于比较运算4<=小于等于比较运算4<小于比较运算4=等于比较运算4<>不等于比较运算4AND与逻辑运算3XOR异或逻辑运算2OR或逻辑运算1No.语句例子1赋值语句A=B;A=B+1;2函数调用、功能块调用A=FUNC(P1,P2);FB1(IN1,OUT1,OUT2);3RETURNA=FUNC(P1,P2);RETURNA;4IFIFA>0THENB=1;ELSEIFA>-5THENB=2;ELSEB=3;END_IF;5CASETW=FUNC1();CASETWOF1:I=1;2:I=2;Page3of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm赋赋赋赋值值值值语语语语句句句句赋值语句将“=”右边表达式的值赋给左边的变量。函函函函数数数数调调调调用用用用语语语语句句句句函数和功能块的调用包括函数名或功能块名加小括号对,括号内为参数,参数间由逗号隔开。函数的调用规则:ELSEI=3;END_CASE;6FORJ=10;FORI=1TO100BY2DOIFB1THENJ=1;EXIT;END_IF;END_FOR;7WHILEJ=1;WHILEJ<=100ANDB1DOJ=J+2;END_WHILE;8REPEATJ=1;REPEATJ=J+2;UNTILJ=101ORB1END_REPEAT;9EXITJ=1;WHILEJ<=100ANDB1DOJ=J+2;IFJ>=50THENEXIT; END_IF;END_WHILE;10EMPTYFORI=1TO100BY2DO ;END_FOR;Page4of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htmret=Func(in1,in2); (*作为表达式返回值*)Func(in1,in2);(*作为子程序处理*)功能块的调用规则:调用功能块时要严格按照输入输出顺序,先输入输入参数,再输入输出参数,参数顺序按照定义时的顺序。输出参数必须是变量: FuncBlock(in1,in2,out1,out2)。STSTSTST语语语语言函言函言函言函数数数数和功能和功能和功能和功能块块块块函函函函数数数数定定定定义义义义 只有一个输出(变量类型可以自行确定),根据输入可以唯一确定输出。功能功能功能功能块块块块定定定定义义义义 有多个输出,或输出不但和当前输入有关还和上次内部状态有关。除系统内部的函数和功能块外,用户可以自定义函数和功能块。自定义的函数和功能块可以在工程内LD/FBD段落中调用。函函函函数数数数的的的的调调调调用用用用规则规则规则规则 ret=Func(in1,in2); (*作为表达式返回值*) Func(in1,in2);(*作为子程序处理*)功能功能功能功能块块块块的的的的调调调调用用用用规则规则规则规则 调用功能块时要严格按照输入输出顺序,先输入输入参数,再输入输出参数,参数顺序按照定义时的顺序。 输出参数必须是变量。 FuncBlock(in1,in2,out1,out2);使用限制使用限制使用限制使用限制ST的FUNCTIONFUNCTIONFUNCTIONFUNCTION模块�可以调用其它STFUNCTION,允许嵌套�可以调用标准函数ST的FUNCTION_BLOCKFUNCTION_BLOCKFUNCTION_BLOCKFUNCTION_BLOCK模块�可以调用STFUNCTION�可以调用其它STFUNCTION_BLOCK,但是所调用的FUNCTION_BLOCK不允许嵌套Page5of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm�可以调用标准函数TEXTCODETEXTCODETEXTCODETEXTCODE模块�可以调用STFUNCTION�可以调用STFUNCTION_BLOCK�可以调用标准函数�可以调用各种编程语言生成的功能块编译编译编译编译速度速度速度速度由于当前SCControl所使用的ARM编译器(SDT251)的缘故,使用循环语句,尤其是其中的WHILE语句,会明显增加编译时间,为获得更快的编译速度建议尽可能不使用WHILE语句以及少使用REPEAT/FOR语句。FUNCTIONFUNCTIONFUNCTIONFUNCTIONFUNCTIONFUNC3:BOOLVAR_INPUT IN1:BOOL;END_VARVAR TEMP1:BOOL;END_VAR FUNC3:=DoSomething();END_FUNCTION 说说说说明明明明:VAR_INPUT/END_VAR用于说明功能块的输入变量;VAR/END_VAR用于说明功能块内部的临时变量(临时变量存储在系统堆栈中,不能维持状态到下一周期);各类变量声明的次序不能颠倒;调用时要严格按照声明的先后次序。FUNCTION_BLOCKFUNCTION_BLOCKFUNCTION_BLOCKFUNCTION_BLOCKPage6of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htmFUNCTION_BLOCKFB3VAR_INPUT IN1:BOOL;END_VAR VAR_OUTPUT OUT1:BOOL;END_VAR VAR TEMP1:BOOL;END_VAR DoSomething(); END_FUNCTION_BLOCK说说说说明明明明:VAR_INPUT/END_VAR用于说明功能块的输入变量;VAR_OUTPUT/END_VAR用于说明功能块的输出变量;VAR/END_VAR用于说明功能块内部的临时变量(临时变量存储在系统堆栈中,不能维持状态到下一周期);各类变量声明的次序不能颠倒;不能对输出变量进行自操作;功能块调用时要严格按照声明的先后次序。STSTSTST语语语语言程序言程序言程序言程序实实实实例例例例赋赋赋赋值值值值语语语语句句句句Page7of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm赋值语句将“=”右边表达式的值赋给左边的变量。 A=B; A=B+C; A=B*C+D; A=BANDCANDDORE; A= AND_DWORD(B,C);IFIFIFIF语语语语句句句句IF(AAND(B>C)OR(E>F+1)) THEN AA=BB;ELSEIF(B>G) THEN AA=CC;ELSE AA=DD;END_IF;IF语句规定了一组语句在规定的逻辑表达式为TRUE时执行。当逻辑表达式为FALSE时,这些语句不被执行,或在ELSE(ELSEIF)中规定的另一组语句被执行。CASECASECASECASE语语语语句句句句 CASE A OF1: AA=BB;2: AA=CC;3: AA=DD;ELSE AA=EE;END_CASE;Page8of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htmCASE语句规定了整数类型的选择项,以及选择项在不同的值时的几组语句组。当选择项等于某个规定的值时,相应的语句组被执行,当没有规定的值符合时在ELSE中的语句组将被执行(在CASE语句中定义了ELSE分支)。FORFORFORFOR语语语语句句句句FORI=1TO100BY2DO DOSOMETHING();END_FOR;在以上FOR语句中,I为控制变量,1为初始值,100为终止值,2为步进值。在FOR语句中控制变量的初始值、终止值、步进值必须是相同的整型。步进值缺省为1。终止条件的判断一开始就进行,当初始值大于终止值时,规定的语句组一次都不会执行。WHILEWHILEWHILEWHILE语语语语句句句句WHILE条件DO 语句组END_WHILE;条件的判断一开始就进行,如条件一开始就变FALSE时,规定的语句组一次都不会执行。REPEATREPEATREPEATREPEAT语语语语句句句句REPEAT语句组UNTIL终止条件END_REPEAT;终止条件的判断在语句组执行一次后才进行,所以规定的语句组至少会执行一次。当终止条件成TRUE时,循环被终止。STSTSTST可可可可调调调调用函用函用函用函数数数数列表列表列表列表�算术运算�比较函数�转换函数�逻辑运算�数学函数�选择函数Page9of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm返回上层算算算算术运术运术运术运算算算算�加法函加法函加法函加法函数数数数这些函数的功能是将输入值相加,并将结果赋给输出值。函数类型如下: FLOAT ADD_FLOAT(FLOATa,FLOATb) INT ADD_INT(INTa,INTb) LONG ADD_LONG(LONGa,LONGb) UINT ADD_UINT(UINTa,UINTb) ULONG ADD_ULONG(ULONGa,ULONGb) SFLOAT ADD_SFLAOAT(SFLOATa,SFLOATb)�平均函平均函平均函平均函数数数数这些函数的功能是求输入值的平均值,并将结果赋给输出值。函数类型如下: FLOAT AVE_FLOAT(FLOATa,FLOATb) INT AVE_INT(INTa,INTb) LONG AVE_LONG(LONGa,LONGb) UINT AVE_UINT(UINTa,UINTb) ULONG AVE_ULONG(ULONGa,ULONGb) SFLOAT AVE_SFLOAT(SFLOATa,SFLOATb) 对于AVE_FLOAT函数,两个输入之和不能超出浮点的量程。�除法函除法函除法函除法函数数数数这组函数的功能是将输入值相除,并将结果赋给输出值。函数类型如下:�通讯辅助函数�系统时间函数�特殊函数�其他函数�输入处理函数�智能通讯卡处理函数Page10of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm FLOAT DIV_FLOAT(FLOATa,FLOATb) INT DIV_INT(INTa,INTb) LONG DIV_LONG(LONGa,LONGb) UINT DIV_UINT(UINTa,UINTb) ULONG DIV_ULONG(ULONGa,ULONGb) SFLOAT DIV_SFLOAT(SFLOATa,SFLOATb)�求模函求模函求模函求模函数数数数该组函数的功能是将输入值相除,并将余数赋给输出值。函数类型如下: INT MOD_INT(INTa,INTb); LONG MOD_LONG(LONGa,LONGb); UINT MOD_UINT(UINTa,UINTb); ULONG MOD_ULONG(ULONGa,ULONGb);�赋赋赋赋值值值值函函函函数数数数 该组函数的功能是将输入赋给输出值。函数类型如下所示: BOOL MOVE_BOOL(BOOLa); BYTE MOVE_BYTE(BYTEA); DWORD MOVE_DWORD(DWORDa); FLOAT MOVE_FLOAT(FLOATa); INT MOVE_INT(INTa); LONG MOVE_LONG(LONGa); UINT MOVE_UINT(UINTa); ULONG MOVE_ULONG(ULONGa); WORD MOVE_WORD(WORDa); SFLOAT MOVE_SFLOAT(SFLOATa);�
乘法
99乘法表99乘法表打印九九乘法表a4打印九九乘法表免费下载大九九乘法表免费打印
函乘法函乘法函乘法函数数数数 该组函数的功能是将输入值相乘,并将结果赋给输出值。函数的类型如下所示:Page11of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm FLOAT MUL_FLOAT(FLOATa,FLOATb); INT MUL_INT(INTa,INTb); LONG MUL_LONG(LONGa,LONGb); UINT MUL_UINT(UINTa,UINTb); ULONG MUL_ULONG(ULONGa,ULONGb); SFLOAT MUL_SFLOAT(SFLOATa,SFLOATb);� 减减减减法函法函法函法函数数数数 该组函数的功能是将输入值相减,并将结果赋给输出值。函数类型如下所示: FLOAT SUB_FLOAT(FLOATa,FLOATb); INT SUB_INT(INTa,INTb); LONG SUB_LONG(LONGa,LONGb); UINT SUB_UINT(UINTa,UINTb); ULONG SUB_ULONG(ULONGa,ULONGb); SFLOAT SUB_SFLOAT(SFLOATa,SFLOATb)’;比比比比较较较较函函函函数数数数�等于比等于比等于比等于比较较较较 该组函数功能是检查第一个输入值是否等于第二个输入值,若是,则输出值为ON,否则为OFF。函数类型如下所示: BOOL EQ_BOOL(BOOLa,BOOLb); BOOL EQ_BYTE(BYTEA,BYTEB); BOOL EQ_DWORD(DWORDa,DWORDb); BOOL EQ_FLOAT(FLOATa,FLOATb); BOOL EQ_INT(INTa,INTb); BOOL EQ_LONG(LONGa,LONGb); BOOL EQ_UINT(UINTa,UINTb); BOOL EQ_ULONG(ULONGa,ULONGb); BOOL EQ_WORD(WORDa,WORDb);Page12of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm BOOL EQ_SFLOAT(SFLOATa,SFLOATb);� 大于等于比大于等于比大于等于比大于等于比较较较较 该组函数功能是检查第一个输入值是否大于等于第二个输入值,若是,则输出值为ON,否则为OFF。函数类型如下所示: BOOL GE_FLOAT(FLOATa,FLOATb); BOOL GE_INT(INTa,INTb); BOOL GE_LONG(LONGa,LONGb); BOOL GE_UINT(UINTa,UINTb); BOOL GE_ULONG(ULONGa,ULONGb); BOOL GE_SFLOAT(SFLOATa,SFLOATb);�大于比大于比大于比大于比较较较较 该组函数功能是检查第一个输入值是否大于第二个输入值,若是,则输出值为ON,否则为OFF。函数类型如下所示: BOOL GT_FLOAT(FLOATa,FLOATb); BOOL GT_INT(INTa,INTb); BOOL GT_LONG(LONGa,LONGb); BOOL GT_UINT(UINTa,UINTb); BOOL GT_ULONG(ULONGa,ULONGb); BOOL GT_SFLOAT(SFLOATa,SFLOATb);�小于等于比小于等于比小于等于比小于等于比较较较较 该组函数功能是检查第一个输入值是否小于等于第二个输入值,若是,则输出值为ON,否则为OFF。函数类型如下所示: BOOL LE_FLOAT(FLOATa,FLOATb); BOOL LE_INT(INTa,INTb); BOOL LE_LONG(LONGa,LONGb); BOOL LE_UINT(UINTa,UINTb); BOOL LE_ULONG(ULONGa,ULONGb); BOOL LE_SFLOAT(SFLOATa,SFLOATb);Page13of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm�小于比小于比小于比小于比较较较较 该组函数功能是检查第一个输入值是否小于第二个输入值,若是,则输出值为ON,否则为OFF。函数类型如下所示: BOOL LT_FLOAT(FLOATa,FLOATb); BOOL LT_INT(INTa,INTb); BOOL LT_LONG(LONGa,LONGb); BOOL LT_UINT(UINTa,UINTb); BOOL LT_ULONG(ULONGa,ULONGb); BOOL LT_SFLOAT(SFLOATa,SFLOATb);�不等比不等比不等比不等比较较较较 该函数的功能是对两个输入值进行比较,若输入值不等,则输出值为ON,否则为OFF。 N和ENO能作为附加参数加以设置。函数类型如下所示: BOOL NE_BOOL(BOOLa,BOOLb); BOOL NE_BYTE(BYTEA,BYTEB); BOOL NE_DWORD(DWORDa,DWORDb); BOOL NE_FLOAT(FLOATa,FLOATb); BOOL NE_INT(INTa,INTb); BOOL NE_LONG(LONGa,LONGb); BOOL NE_UINT(UINTa,UINTb); BOOL NE_ULONG(ULONGa,ULONGb); BOOL NE_WORD(WORDa,WORDb); BOOL NE_SFLOAT(SFLOATa,SFLOATb);转换转换转换转换函函函函数数数数�LONG DWORD_TO_LONG(DWORDa); 该函数功能是将DWORD型的输入值转化为LONG型数据类型。 Page14of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm�INT FLOAT_TO_INT(FLOATa); 该函数功能是将FLOAT型的输入值转化为INT型数据类型。 �FLOAT INT_TO_FLOAT(INTa); 该函数功能是将INT型的输入值转化为FLOAT型数据类型。 �LONG INT_TO_LONG(INTa); 该函数功能是将INT型的输入值转化为LONG型数据类型。 �UINT INT_TO_UINT(INTa); 该函数功能是将INT型的输入值转化为UINT型数据类型。 �WORD INT_TO_WORD(INTa); 该函数功能是将INT型的输入值转化为WORD型数据类型。 �DWORD LONG_TO_DWORD(LONGa); 该函数功能是将LONG型的输入值转化为DWORD型数据类型。 �FLOAT LONG_TO_FLOAT(LONGa); 该函数功能是将LONG型的输入值转化为FLOAT型数据类型。 �INT LONG_TO_INT(LONGa); 该函数功能是将LONG型的输入值转化为INT型数据类型。 �ULONG LONG_TO_ULONG(LONGa); 该函数功能是将LONG型的输入值转化为ULONG型数据类型。Page15of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm �INT UINT_TO_INT(UINTa); 该函数功能是将UINT型的输入值转化为INT型数据类型。 �ULONG UINT_TO_ULONG(UINTa); 该函数功能是将UINT型的输入值转化为ULONG型数据类型。 �WORD UINT_TO_WORD(UINTa); 该函数功能是将UINT型的输入值转化为WORD型数据类型。 �DWORD ULONG_TO_DWORD(ULONGa); 该函数功能是将ULONG型的输入值转化为DWORD型数据类型。 �LONG ULONG_TO_LONG(ULONGa); 该函数功能是将ULONG型的输入值转化为LONG型数据类型。 �UINT ULONG_TO_UINT(ULONGa); 该函数功能是将ULONG型的输入值转化为UINT型数据类型。 �BYTE WORD_TO_BYTE(WORDA); 该函数功能是将WORD型的输入值转化为BYTE型数据类型。 �WORD BYTE_TO_WORD(BYTEA); 该函数功能是将BYTE型的输入值转化为WORD型数据类型。 �INT WORD_TO_INT(WORDa);Page16of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm 该函数功能是将WORD型的输入值转化为INT型数据类型。 �UINT WORD_TO_UINT(WORDa); 函数功能是将WORD型的输入值转化为UINT型数据类型。 �FLOAT SFLOAT_TO_FLOAT(SFLOATA); 函数功能是将SFLOAT型的输入值转化为FLOAT型数据类型。 �SFLOATFLOAT_TO_SFLOAT(FLOATA); 函数功能是将FLOAT型的输入值转化为SFLOAT型数据类型。 �INT SFLOAT_TO_INT(SFLOATA); 函数功能是将SFLOAT型的输入值转化为INT型数据类型。 �SFLOATINT_TO_SFLOAT(INTA); 函数功能是将INT型的输入值转化为SFLOAT型数据类型。�INT DEC_TO_BCD(BYTEdec); 函数功能:同十进制转换为BCD码模块,具体见FBD
说明书
房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载
。逻辑运逻辑运逻辑运逻辑运算算算算�逻辑逻辑逻辑逻辑与与与与函函函函数数数数该组函数的功能是将输入值进行该逻辑与操作,并将结果赋给输出值。函数类型如下所示: BOOL AND_BOOL(BOOLa,BOOLa); BYTE AND_BYTE(BYTEA,BYTEB);Page17of302011-9-20file://C:\DocumentsandSettings\Administrator\LocalSettings\Temp\~hh557.htm DWORD AND_DWORD(DWORDa,DWORDb); WORD AND_WORD(WORDa,WORDb);�逻辑逻辑逻辑逻辑取反函取反函取反函取反函数数数数 该组函数的功能是将输入值进行逻辑取反操作,并将结果赋给输出值。函数类型如下所示: BOOL NOT_BOOL(B