- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
施耐德PLC初学者指南-ST指令.doc
施耐德PLC初学者入门-ST指令
1.指令
传统的PLC软件编程语言一般仅支持LD/IL/FBD,ST/SFC/CFC往往需要安装附加的语言包才能支持。SoMachine支持全部的6种编程语言,编程者可以根据实际的需要任意选择编程语言。对于SoMachine编程而言,建议编程者在选择编程语言时应根据实际的编程方便来选择编程语言,而不是在整个程序中仅使用LD.例如,编写算法程序时应优先考虑ST,编写顺序流程时应优先考虑SFC,编写逻辑控制时应优先考虑LD,编写功能块时应优先考虑CFC或FBD.
MAST任务的选择
建议大家优先选择循环任务
注意:
1) 如果为某个循环任务定义的周期过短,则该任务会在写入输出后立即重复,而不会执行其
他较低优先级的任务或任何系统处理。这将会影响所有任务的执行并导致控制器超过系统看
门狗限制,从而导致系统看门狗例外.
可以使用 GetCurrentTaskCycle 和 SetCurrentTaskCycle 功能通过应用程序获取和设置循环执行任务间隔.
指令优先级
ST语言编写:
Eg.
指令说明
1) 赋值指令
变量 := 变量或表达式
例如:Var2:=Var1*10;
2)IF指令
3)IF 条件A THEN
表达式A;
END_IF
例如:
IF temp17
THEN heating_on := TRUE;
END_IF
4)IF 条件A THEN
表达式A;
ELSE
表达式B;
END_IF
例如:
IF temp17
THEN heating_on := TRUE;
ELSE heating_on := FALSE;
END_IF;
5) IF 条件A THEN 表达式A;
ELSIF 条件B THEN 表达式B;
...
ELSIF 条件N-1 THEN 表达式N-1;
ELSE 表达式N;
END_IF
6)CASE指令
语法:
CASE 控制变量 OF
数值1: 表达式1
数值2: 表达式2
数值3, 数值4, 数值5: 表达式3
数值6 .. 数值10: 表达式4
...
数值n: 表达式n
ELSE ELSE的表达式
END_CASE
例子:
CASE INT1 OF
1, 5: BOOL1 := TRUE;
2: BOOL2 := TRUE;
10..20: BOOL3:= TRUE;
ELSE
BOOL1 := BOOL2 :=BOOL3 :=FALSE;
END_CASE
当INT1=1或5时,BOOL1为真;
当INT1=2时,BOOL2为真;
当INT1=10~20之间的数值时,BOOL3为真;
否则,BOOL1、BOOL2、BOOL3均为假。
7)For指令
语法:
FOR 循环控制变量 := 循环开始时变量值 TO 循环结束时变量值{BY 变量递增步长}
DO
表达式
END_FOR
其中,{}内语句可根据需要省略,省略时步长默认为1。
例如:
FOR Counter:=1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR
8)WHILE循环指令
语法:
WHILE 循环条件
表达式
END_WHILE
WHILE Counter0 DO
Var1 := Var1*2;
Counter := Counter-1;
END_WHILE
9)Repeat
REPEAT
表达式
UNTIL 循环结束条件
END_REPEAT
REPEAT
表达式
UNTIL 循环结束条件
END_REPEAT
Eg.
REPEAT
Var1 := Var1*2;
Counter := Counter-1;
UNTIL
Counter=0
END_REPEAT
10) EXIT指令
EXIT用于退出FOR循环、WHILE循环、REPEAT循环。
11) RETURN指令
返回指令,用于根据一定条件退出POU。
12)调用运算快指令
13)局部变量声明:
语法:
标识符 {AT地址}:类型{:=初始化值};其中大括号{}中为可选部分。
例如:
kaishi: BOOL;
tingzhi AT %MX0.1: BOOL;
shuju AT %MW100: INT := 218;
文档评论(0)