当前位置: 首页 > news >正文

基于GX Works2的ST语言介绍

目录:

一、ST语言、T形图介绍

1、ST语言

2、T形图

二、GX Works2的ST语言环境

1、创建工程

2、创建标签

3、开始写程序

4、写入与软仿真

三、ST语言介绍

1、公用元素和程序组织单元


一、ST语言、T形图介绍

1、ST语言

发现网上 PLC 的 ST 编程资料极少。不过道理也很简单,因为做 PLC 的基本都是电气出身,梯形图类似于继电器逻辑,比较接近于他们的习惯。ST 属于文本编程,符合单片机编程人员的习惯。兼职做 PLC 的人极少,本人算是一个例外吧。

目前用过三菱PLC(支持 ST语言)禾川PLC信捷PLC(不支持 ST语言)。下面的使用仅以三菱PLC 为依据,其他品牌若有出入,勿喷,欢迎补充。

下面是一个 ST程序的例子:当 X0 接通时,打开 Y0。

IF X0 THEN Y0 := TRUE; END_IF;

很像 C语言对不对?不过呢,建议写成下面这个样子(更简洁):

SET(X0,Y0);

SET、RST 都是函数,传入参数就可以了,可以看帮助(第一个参数是触发条件,第二个参数是操作对象)。

2、T形图

上面的例子这么写:

看到没,其实差不多。但是呢,当程序长了之后,就会发现:

①梯形图臃肿,一页屏幕显示不了多少语句。

②梯形图只能用软元件名,不能自己取一个有意义的名字。可以设置标签,但是只是输入时方便。写完后,显示不了标签。而 ST语言则可以,而且鼠标停靠时,可以显示注释。

二、GX Works的ST语言环境

GX Works2 支持多种编程方式:

程序员风格的ST(Structured Text)语言、电气工程师风格的T形图、汇编语言式的指令表IL(Instruction List)、流程图风格的SFC(Sequence Function Chart)、门电路风格的FBD(Function Block Diagram)。

1、创建工程

2、创建标签

标签就是给软元件取名字,有名字,编程才流畅啊,谁记得那么多编号啊。有全局标签/局部标签,顾名思义,相当于 C语言全局变量/局部变量。

要先设置软元件,回车就会自动帮你填好;然后再设置标签名。

3、开始写程序

先写一个最简单的程序。

4、写入与软仿真

1)编译

编译时会检查程序是否有错误。(相当于 T形图中的“转换”)

2)写入与读取

将 ST语言写入 PLC,然后再读出来(顶部菜单→在线→PLC 读取),ST工程无法读取,只有当工程是梯形图工程时才能读取。

不管哪种编程方式写的,写到 PLC,再读出来的都是梯形图。好吧,原来不管是写入时还是转成 T形图再写进入。

3)软仿真

4)其他说明

对于这样的例子,让 Y0 等于 X0。

写法1:

IF X0 THEN Y0 :=TRUE; ELSE Y0 :=FALSE; END_IF;

写法2:

SET(X0,Y0); RST(NOT X0,Y0);

写法1 虽然更直白,但是语句更多,写入到 PLC 的梯形图很复杂(如下图)。所以建议用第二种风格。

而第2种写法,则是下面这样的。

三、ST语言介绍

1、公用元素和程序组织单元

1)软件模型与编程模型

软件模型:描述基本的高级软件元素及其相互关系。这些元素包括:程序组织单元,即程序和功能块;组态元素,即配置、资源、任务、全局变量和存取路径。它是现代 PLC 的软件基础。

它分为输入输出界面、通信界面和系统界面 3部分。

(1)配置:是语言元素,相当于标准所定义的可编程控制器系统。位于软件模型的最上层,可认为是一个特定类型的控制系统,它包括硬件装置、处理资源、I/O通道的存储地址和系统能力,即等同于一个 PLC 的应用程序。它将系统内所有资源结合成组,为资源提供数据交换的手段。

(2)资源:位于软件模型的第2层,为运行程序提供支持系统,是能执行 IEC 程序的处理手段。资源反映了可编程控制器的物理结构,为程序和 PLC 的物理输入输出通道提供了一个接口

一个程序只能装入到资源中才能运行,其主要功能之一是提供程序和 PLC 物理 I/O通道之间的界面。

(3)任务:位于软件模型分层结构的第3层,用于规定程序组织单元POU 在运行期的特性,它是一个执行控制元素,具有调用能力。一个资源中可以有多个任务,一旦任务被设置,就可控制一系列程序组织单元周期地执行,或者根据一个特定的事件触发来执行。

任务表示形式:

任务的输入参数:

除任务名称外,还有 3个输入参数,即 SIGNAL、INTERVAL 和 PRIORITY 属性。

(4)全局变量

在配置中声明的全局变量可在整个配置范围内使用,在资源中声明的全局变量只能在该资源范围内使用。在一个程序内声明的全局变量可以存取在该程序内部的功能块和函数。

全局变量被定义在配置、资源或程序层内部,提供了在两个不同程序和功能块之间非常灵活的交换数据的方法。

(5)存取路径

用于将全局变量、直接表示变量和功能块的输入、输出和内部变量联系起来,实现信息的存取。

编程模型:用于描述库元素如何产生衍生元素,也称为功能模型。其包括信号处理功能、传感器和执行器接口功能、通信功能、人机接口功能、编程、高度攻测试功能及电源功能等。

2)共用元素

(1)字符集

(2)标识符

确保所编写标识符的前 6个字符是唯一的。

(3)分界符

(4)关键字

(5)空格与注释

关键字、标识符、分界符等内不允许包含空格,注释以(*开始,以*)结束。

3)数据的外部表示

(1)数值文字

2#1111_1111 = 16#FF = 10#255(10# 可省略),数值的基不允许前置分界符(+ 或 -),16#-340 是正确的。

(2)字符串文字

由一系列通用的字节表示或 $'、英文双引号 "、$ 与 16进制数字组成。注意:字符串可以是空串,如''或""。单字节字符串用双引号开始,不能用单引号开始。

双字节字符串用单引号开始,不能用双引号开始。单字节字符串类型名 STRING 和 #,如 STRING# 'YES',双字节类型名 WSTRING 和 #,如 WSTRING# "YES"。

(3)时间文字

它用于表示时间,持续时间:

一天中的时间:

Time of Day 或 TOD 用于表示在一天中的时间,也称为时刻。如 TOD#12:34:56 和 Time of Day#12:34:56 等效。

日期:

Date 用于表示当天是某年某月某日,如 D#2000-05-10。

日期和时刻:

Date and Time 或 DT 用于表示某年某月某日某时某分某秒某毫秒的时间。如 DT#2008-05-12-14:28:04 表示 2008年5月12日14时28分04秒。

注意持续时间文字中的数据可以缺省,如 T#3h2s、T#5D38S 等,但后 3种时间文字中的数据不能缺省,只有当最小时间单位没有时,才可以省略该部分。

4)数据类型

基本数据类型:

一般数据类型

用前缀 “ANY” 标识,

衍生数据类型

数据类型的允许取值范围和初始化。

5)变量

与数据的外部表示相反,变量提供能够改变其内容的数据对象的识别方法。如可改变 PLC 输入与输出 或存储器有关的数据。变量被声明为基本数据类型、一般数据类型或衍生数据类型。

6)程序组织单元

函数

资料参考:IEC61131-3模块化编程语言及应用基础。


于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。觉得不错,动动发财的小手点个赞哦!

http://www.jsqmd.com/news/446830/

相关文章:

  • 用对 CS_ / RS_:看懂 SAP HANA 执行引擎选择,写出更稳更快的 SQL
  • puzzle(0712)Lazors、折射之光
  • 【有趣项目 Windows】浏览器使用技巧:chrome数据数据设置+实现浏览器双开、多开
  • 蓝桥杯嵌入式(STM32G431RBT6)入门第四天——系统嘀嗒定时器(SysTick)|CSDN创作打卡
  • Web前端之Sass中的颜色函数、active按钮激活、disabled禁用、hover鼠标悬浮、Style循环、Css
  • 海康威视网络摄像头配置本地存储服务器进行录像和查看!(需要有老版本存储服务器软件和4200老版本搭配使用,官网没有了)
  • VisualStudioCode之各种配置介绍、终端不能运行yarn脚本、自动添加或补全双引号、文件头部的注释说明、保存时禁止格式化、重新加载窗口
  • 【KEIL】【JLINK】KEIL如何进行远程调试
  • 2026年商用咖啡机厂家深度测评:基于全链路能力与创新实效的四维战力解析 - 品牌推荐
  • 2026年商用咖啡机厂家权威榜单发布:五大品牌技术实力与服务网络深度排位赛 - 品牌推荐
  • 蓝桥杯嵌入式(STM32G431RBT6)入门第三天——使用按键(KEY)|CSDN创作打卡
  • ARM-MPU内存保护单元详解
  • 《计算机体系结构基础》课程速看(一)
  • 物联网之Arduino编程语言、条件语句、循环语句、变量、数组、函数
  • Web前端之页面可见性与元素重叠、懒加载、显示、隐藏、交叉、IntersectionObserver、visibilitychange
  • 怎么一步步实现小米智能家居之玄关篇
  • 探索PQ控制三相并网逆变器:从理论到仿真
  • 蓝桥杯嵌入式(STM32G431RBT6)入门第二天——建立自己的初始化文件|CSDN创作打卡
  • 服务端之NestJS中获取完整请求Host的四种封装方式及应用场景、Service与拦截器对比、工具函数、装饰器
  • SAP HANA SQLScript 性能定位的起手式:用支持性工具锁定主导语句与主导算子
  • Cadence
  • 蓝桥杯嵌入式(STM32G431RBT6)入门第一天——点亮LED|CSDN创作打卡
  • Web前端之监听元素的重叠度、设置所有元素的滚动条宽度都为0、节点布局的交叉状态、生成随机图片、阮一峰、标签、IntersectionObserver
  • 【解决】Ping 不是内部或外部命令,也不是可运行的程序或批处理文件
  • Python相关问题
  • 算法---LeetCode 剑指 Offer 26. 树的子结构
  • Web前端之上传文件夹、webkitdirectory
  • 通俗易懂解释知识图谱(Knowledge Graph)
  • Web前端之实现酷炫的仪表进度条、JavaScript动态设置Css属性值、标签元素属性选择器、hsl样式函数
  • 优先队列(priority_queue)总结