PLC编程之ST语言
PLC编程之ST语言
- 1,IF结构:
- 2,FOR结构:
- 3,CASE结构:
- 4,WHILE结构:
ST语言是IEC61131-3中规定的5中标准语言之一,目前常用见品牌的PLC都支持这种语言(施耐德,AB可以直接选择创建该类型的程序段或者功能块,西门子的略微麻烦一点),ST语言的一个好处是移植性好,各家的ST语言基本都是类似的,所以如果有一个巨牛逼的算法,用ST语言实现是再好不过的了,这样可以很容易的在多个品牌的PLC上移植,当前,有个前提条件是在这个算法中不要使用太多的系统功能块,因为系统功能块往往都是各个品牌比较个性的东西,会给移植带来麻烦。另外,ST语言最适合写一些复杂的算法,个人觉得尤其是对应一些数组的操作,用ST语言是最方便的,当然有梯形图也能实现,不过远没有用ST来的方便。ST语言的语法和pascal,C语言等都非常像,有时候各种语言用多了,就会混,所以这里将ST语言的几种常用控制语句记录下来。
基本语法参考链接:参考链接
1,IF结构:
基本语法是:
IF bool_expression_1 THEN<逻辑语句>
ELSE IF bool_expression_2 THEN //这两行可选<逻辑语句>
ElSE //这两行可选<逻辑语句>
END_IF;
举例:
IF a>b THENflag:=1;ELSE IF a<b THENflag:=2;ELSEflag:=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 DOsum:=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 OF1,2,3:a:=10;4:a:=20;
elsea:=100;
END_CASE;
说明:
CASE语句和其他高级语言中的CASE语句很类似,但是少了break,实际上这里的CASE只会执行第一个满足条件的语句,相当于在每一个选项里自动增加了一个break操作。
4,WHILE结构:
基本语法:
WHILE bool_expression DO<逻辑语句>
END_WHILE;
举例:
i:=0;
sum:=0;
WHILE i=100 DOsum:=sum+i;i:=i+1;
END_WHILE;
基本结构就上面几种,不同的软件之间可能会有细小差别。
举例:
变量定义:
PROGRAM STStructTest001TYPEstudent:STRUCTgender : ARRAY[1..10] OF BOOL;age : ARRAY[1..10] OF USINT;class : ARRAY[1..10] OF INT;score : ARRAY[1..10] OF INT;END_STRUCT;END_TYPEVAR//stu : ARRAY[1..10] OF student;stu1: student;num : INT;boy : UINT;girl: UINT;ageSum : UINT;scoreSum : UINT;i : INT;start : bool;aveAge : REAL;aveScore : REAL;END_VAR
代码:
IF start THEN num := 10;boy := 0;girl := 0;ageSum := 0;scoreSum := 0;FOR i:=1 to num BY 1 DOIF stu1.gender[i]=TRUE THENboy := boy + 1;ELSE girl := girl + 1;END_IF;ageSum := ageSum + stu1.age[i];scoreSum := scoreSum + INT_TO_UINT(stu1.score[i]);END_FOR;
END_IF;aveAge := ageSum / num;
aveScore := aveScore / num;END_PROGRAM
PLC编程之ST语言相关推荐
- 大型欧姆龙PLC NJ系列ST语言Ethercat总线24轴 伺服电池生产线欧姆龙PLC程序大型程序NJ系列
大型欧姆龙PLC NJ系列ST语言Ethercat总线24轴 伺服电池生产线欧姆龙PLC程序大型程序NJ系列 ST语言EtherCat总 线控制24个伺服轴大型程序电池生产线 包括PLC NJ-140 ...
- 欧姆龙 PLC 程序NJ ST语言EtherCat总线控制24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序
欧姆龙 PLC 程序NJ ST语言EtherCat总线控制24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序 PLC通过EtherCat总线连接IS620N伺服 伺服轴已经写 ...
- 欧姆龙 PLC 程序NJ ST语言EtherCat总线控制 24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序
欧姆龙 PLC 程序NJ ST语言EtherCat总线控制 24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序 PLC通过EtherCat总线连接IS620N伺服 伺服轴已经 ...
- 大型欧姆龙PLC NJ系列ST语言Ethercat总线24轴
大型欧姆龙PLC NJ系列ST语言Ethercat总线24轴 伺服电池生产线欧姆龙PLC程序大型程序NJ系列 ST语言EtherCat总 线控制24个伺服轴大型程序电池生产线 包括PLC NJ-140 ...
- 欧姆龙 PLC 程序NJ ST语言EtherCat总线控制24个伺服轴大型程序电池生产线
欧姆龙 PLC 程序NJ ST语言EtherCat总线控制24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序 PLC通过EtherCat总线连接IS620N伺服 伺服轴已经写 ...
- 欧姆龙PLC NJ系列ST语言EtherCat总线控制24个伺服轴大型程序电池生产线
欧姆龙PLC NJ系列ST语言EtherCat总线控制24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序 PLC通过EtherCat总线连接IS620N伺服 伺服轴已经写好F ...
- 三菱PLC程序 三菱F5U 系列PLC程序,ST语言编程,配触摸屏程序,恒压测试设备,可递增,可一直保持恒压,递增的阶梯和递增的先后顺序都可在触摸屏上设置
三菱PLC程序 三菱F5U 系列PLC程序,ST语言编程,配触摸屏程序,恒压测试设备,可递增,可一直保持恒压,递增的阶梯和递增的先后顺序都可在触摸屏上设置,有监控曲线和历史记录,PLC采用ST语言进行 ...
- iOS编程之C语言简介
开篇为什么要先学习C语言 对于零基础开发的人来说先学习C语言,是不错的选择,目前iOS开发的主要编程语言是Objective-C 和 swift,除此之外,你还要了解C语言,iOS有些系统类库是用C语 ...
- linux socket通信编程之c语言(客户端和服务器程序)
最近在学习socket编程,在网上找到一个很好的实例,于是按自己的想把代码修改了一下,算半原创了~~~~ 要保存起来常复习呀~~~ /// //服务器端代码:server.c /// //本文件是服务 ...
- 桌面端编程之C++语言的知识架构
桌面端编程使用最多的编程语言之一就是C++,本部分将以C++作为代表来介绍桌面端编程.C++是常年稳居TIOBE编程语言排行榜前五的主流编程语言,在IT界被广泛使用,特别是在需要与底层硬件打交道的场合 ...
最新文章
- oftp-2协议服务器,科普:Oasis自研通信协议与互联网分层架构
- [异常笔记] zookeeper集群启动异常: Cannot open channel to 2 at election address ……
- Store Kit Guide(In App Purchase)翻译
- iOS:给图片置灰色
- 【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·001 用OpenCV制作数据集
- Web表单提交之disabled问题
- 等价类划分测试用例设计方法
- json转map几种方法
- Android,App 常用图标尺寸规范
- python云计算有哪些岗位_云计算就业前景怎么样,包括哪些岗位,各岗位主要工作是什么?...
- 渐进式Express源码学习6-独孤求败
- 初学java者写家庭收支账本
- 密码学的骰子——随机数
- ACM 海贼王之伟大航路(深搜剪枝)
- 百度大脑开放日召开,安全生产智能视频监控解决方案用AI助力生产安全防控
- gun/linux more 搜索功能
- 第14讲:Python使用加法和乘法运算符操作列表
- Java程序设计--Java入门(一)
- 十大杠杆炒股平台浅谈股票短线买入时机
- 《小团队项目管理》第二问 --- 项目经理是救火队长?