目录:
一、ST语言、T形图介绍
1、ST语言
2、T形图
二、GX Works2的ST语言环境
1、创建工程
2、创建标签
3、开始写程序
4、写入与软仿真
1)编译 2)写入与读取 3)软仿真 4)其他说明
三、ST语言介绍
1、公用元素和程序组织单元
1)软件模型与编程模型 2)共用元素 3)数据的外部表示 4)数据类型 5)变量 6)程序组织单元
一、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);
而第 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模块化编程语言及应用基础。
于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 觉得不错,动动发财的小手点个赞哦!