支持带参调用子程序 st语言 plc 推荐

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持带参调用子程序 st语言 plc 推荐相关的知识,希望对你有一定的参考价值。

参考技术A

ST语言支持功能块调用,子程序调用,函数调用,目前支持ST语言的有倍福,和利时,AB,三菱,西门子,ST语言基于IEC-61131-3国际通用PLC语言系统。功能强大,编程灵活,适合各种应用,在codesys的带领下, ST已经逐渐要统一各家PLC编程语言的趋势。

以下是真空灌胶机的ST语言编写的运动控制程序部分

以上回答来自苏州中注真空注胶系统有限公司

本回答被提问者和网友采纳

PLC中ST语言的几种程序流程控制语句

ST语言是IEC61131-3中规定的5中标准语言之一,目前常用见品牌的PLC都支持这种语言(施耐德,AB可以直接选择创建该类型的程序段或者功能块,西门子的略微麻烦一点),ST语言的一个好处是移植性好,各家的ST语言基本都是类似的,所以如果有一个巨牛逼的算法,用ST语言实现是再好不过的了,这样可以很容易的在多个品牌的PLC上移植,当前,有个前提条件是在这个算法中不要使用太多的系统功能块,因为系统功能块往往都是各个品牌比较个性的东西,会给移植带来麻烦。另外,ST语言最适合写一些复杂的算法,个人觉得尤其是对应一些数组的操作,用ST语言是最方便的,当然有梯形图也能实现,不过远没有用ST来的方便。ST语言的语法和pascal非常像,有时候各种语言用多了,就会混,所以这里将ST语言的几种常用控制语句记录下来。
 
1,IF结构:
基本语法是:
IF bool_expression_1 THEN
<逻辑语句>
ELSIF bool_expression_2 THEN //这两行可选
<逻辑语句>
ElSE //这两行可选
<逻辑语句>
END_IF;
举例:
IF a>b THEN
flag:=1;
ELSIF a<b THEN
flag:=2;
ELSE
flag:=3;
END_IF;
说明:
IF语句和梯形图里的常开常闭指令类似,不太推荐用IF语句写复杂逻辑,bool逻辑还是用梯形图写起来方便也直观,除非对ST语言非常热爱同时对梯形图一点不懂。
 
 
2,FOR结构:
基本语法是:
FOR  count:= initial_value  TO final_value BY increment DO
<循环体>
END_FOR;
举例:
sum:=0;
FOR  i:= 2  TO 100 BY 2 DO
sum:=sum+i; //计算0-100内偶数和,包含100
END_FOR;
说明:
BY可后面跟的步长是可选的,如果没有默认为1.
如果要提前退出循环,可以在循环内部增加一个判断条件,配合EXIT语句实现,如下:
FOR  count:= initial_value  TO final_value BY increment DO
IF bool_expression THEN
EXIT;
END_IF;
END_FOR;
 
3,CASE结构:
基本语法:
CASE numeric_expression OF
selector_1:
<逻辑语句>
……
selector_n:
<逻辑语句>
ELSE
<逻辑语句>
END_CASE;
举例:
CASE num OF
1,2,3:
a:=10;
4:
a:=20;
else
a:=100;
END_CASE;
说明:
CASE语句和其他高级语言中的CASE语句很类似,但是少了break,实际上这里的CASE只会执行第一个满足条件的语句,相当于在每一个选项里自动增加了一个break操作。
 
4,WHILE结构:
基本语法:
WHILE bool_expression DO
<逻辑语句>
END_WHILE;
举例:
i:=0;
sum:=0;
WHILE i=100 DO
sum:=sum+i;
i:=i+1;
END_WHILE;
说明:
WHILE和FOR几乎是可以通用的,随个人喜好用吧。
 
 
基本结构就上面几种,上面的语法参照了AB的资料,不同品牌之间可能略有区别,具体使用可以参考具体品牌的手册。

以上是关于支持带参调用子程序 st语言 plc 推荐的主要内容,如果未能解决你的问题,请参考以下文章

PLC的结构化文本ST语言编程,请教一个简单的例子。

codesys 如何用C语言进行编程?我在创建程序的时候没有C语言的选项,是在哪个地方选择啊?

国产PLC软件PikePLC——FBD图形化编程语言开发交通灯控制示例

欧姆龙 PLC ST语言 求助

三菱结构化程序怎么修改

台达plc编程问题 ST中如何使用上升沿触发