欧姆龙cp1h常用指令学习(九)结构化语言ST

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

欧姆龙cp1h常用指令学习(九)结构化语言ST

结构化语言ST是作用于功能块编程中。

这门语言对于梯形图中不善于处理的数值运算等逻辑算法,采用类似于高级语言的语法,使其变得简单。

下面先从功能块的相关知识说起:

CP1H的功能块规格:

功能块定义数: 128

实例数:256

实例嵌套级数:cx-programmer6.0及以后,支持8级嵌套

IO变量数:最多64个变量

变量类型:

注意:TIMER和COUNTER数据类型不能用于结构化文本功能块。

在内部变量中,其中一个变量定义为数组,CX-Programmer 只支持一维数组。 变量可以设置初始值,并且如果勾选了

选择Retain Option 时,变量分配于存储区内。当断电和PLC 操作开始时保持该存储

常数直接输入指令操作数。

• 梯级编程语言。在# 后面输入十六进制数值;在 & 后面输入十进制数。 • 结构化文本(ST 语言):在16# 后面输入十六进制数值;十进制数照原样不动。

ST 编程限制

只支持以下的语句和运算符。

• 赋值语句

• 选择语句(CASE 和IF 语句)

• 迭代语句(FOR、WHILE、REPEAT 和 EXIT 语句)

• RETURN 语句

• 功能块调用语句

• 算术运算符

• 逻辑运算符

• 比较运算符

• 数函词

• 算术函数

• 注释

• 不能使用TIMER 和 COUNTER 数据类型。

程序结构注意事项

实例左面无分支

每级只有一个实例

无功能块连接

变量类型(输入、输出、外部和内部)

输入变量:用来修改已传递的值

输出变量:传递数值或监视输出变量

外部变量:程序中的条件标记、时钟脉冲、辅助区域位

用于程序中的条件标记(例如, Always ON 标记和Equals 标记)、时钟脉冲

(例如, 1.0 秒时钟脉冲位)、预先注册的辅助区域位(例全局符号如,首次循

环标记)和全局符号全部是由系统定义的外部变量。

内部变量:内部分配的变量和需要AT 设置的变量

未规定位输入、输出或外部的变量均为内部变量。内部变量包括内部分配地址

的变量、要求有AT 设置地址的变量(例如,I/O 分配地址、特殊分配于特殊I/

O 单元的地址)或需要数组设置的变量。

计算余数:

当采用ST 语言时,无需使用数组来接收除法运算结果。此外,不能在ST 语言

中直接计算余数。必须按如下方法计算余数

余数 = 被除数. (除数×商数)

使用变址寄存器

变址寄存器IR0 到 IR15 用作规定I/O 存储器地址的指示器。这些变址寄存器可

以在功能块中使用从而可以直接通过IR0 到 IR15 来指定地址而不是变量名(变

址寄存器直接规格:IR0 到IR15 ;变址寄存器间接规格:,IR0 到 ,I R15)

注在使用MOVR (560)指令将实际的I/O 存储器地址存储于变址寄存器后,可

采用通用指令来间接指定变址寄存器。这样,就可动态地规定所有I/O 存储器

区域。

有关变址寄存器的知识参见下面贴子:

欧姆龙CJ1系列PLC存储区的变址寄存器(IR)

结构化文本范例

大写和小写

• 保留字和变量名不分大小写(两者均可使用)。

输入常数(数值)

• 如下例所示,数值可以通过十进制、十六进制、八进制或二进制来表示。 表示方法 范例(用于十进制值12)

十进制: 仅数值12

十六进制: 16# 后面跟数值 16#C

八进制: 8# 后面跟数值 8#14

二进制: 2# 后面跟数值 2#1100

语句

运算符

注根据数据类型运算。

因此, INT 数据加法结果必须是使用INT 数据类型的变量。当整数型变量运算 时出现进位或借位,需特别小心。例如,使用整数型变量 A=3 和 B= 2 时,如 果执行运算(A/B)*2,则A/B 结果为1(1.5 –小数点后面的数值忽略不计), 因此(A/B) *2 = 2。

函数

数据类型转换函数

以下数据类型转换函数可以用于结构化文本中。

语法

源数据类型_TO_ 新数据类型 ( 变量名)

例子:REAL_TO_INT (C)

在本例中,变量C 的数据类型可以从REAL 修改为INT。 数据类型组合

下表给出了可以转换的数据类型组合。

(是 = 可以转换;否 = 不能转)

STL实例1: 计算平均值

效果如下:

平均为20,结果正确。

相关文档
最新文档