We Make Automation Easier for You
Modicon TSX Neza 可编程控制器
指令集和通讯
Building a New Electric World
序言
Modicon TSX Neza可编程控制器操作手册系列包括 A、B、C三部分:
A部分 硬件介绍 《产品指南》
B部分 指令集和通讯 《指令集和通讯》(本手册)
C部分 编程软件 《 PL707 WIN 编程软件操作手册》
B部分包括两个层次的信息:
●
第一层次的信息帮助客户实现简单的功能。在该情况下用户只需阅读文章中的灰体字部分。
●
第二层次的信息帮助用户实现 TSX Neza 的所有功能。在该情况下用户需阅读所有内容。
B
1
B
目录
序言
1 概述
1.1 总论
1.2 指令列表( List或 IL)
1.3 梯形图
2.指令集
2.1 布尔指令
1.3-1 编程原则
1.3-2 梯形图与指令列表的可逆性
1.3-3 可逆的指令列表编程约定
2.1-1 主要位对象定义
2.1-2 布尔指令说明
2.1-3 装入指令LD, LDN, LDR, LDF
2.1-4 赋值指令ST,STN,S,R
2.1-5 逻辑与指令 AND, ANDN, ANDR, ANDF
2.1-6 逻辑或指令OR,ORN,ORR,ORF
2.1-7 异或指令XOR,XORN,XORR,XORF
2.1-8 取非指令 N
2.1-9 圆括号的使用
2.1-10
2.1-11
指令 MPS, MRD, MPP
特殊梯形图指令 OPEN 和 SHORT
1
1
1
2
3
5
7
8
11
11
11
12
14
14
15
15
16
17
17
19
20
2.2 标准功能块
2.2-1 与标准功能块有关的位对象和字对象
2.2-2 编程原则
2.2-3 定时器功能块 %TMi
2.2-4 加/减计数器功能块%Ci
2.2-5 LIFO/FIFO 寄存器功能块 %Ri
2.2-6 鼓形控制器功能块 DRi
2
21
21
22
23
27
30
33
B
2.3 程序指令集
2.3-1 程序结束指令 END,ENDC,ENDCN
2.3-2 NOP指令
2.3-3 跳转指令 JMP ,JMPC,JMPCN 跳至标号为 %Li 的程序行
2.3-4 子程序指令 SRN,SRN:,RET
3 数字指令和特殊指令
3.1 数字处理
3.1-1 字对象定义
3.1-2 结构化对象
3.1-3 数字指令说明
3.1-4 赋值指令
3.1-5 比较指令
3.1-6 算术指令
3.1-7 逻辑指令
3.1-8 移位指令
3.1-9 转换指令
36
36
36
37
38
39
39
39
41
43
43
46
47
49
50
51
3.2 专用功能块
3.2-1 与专用功能块相关的位对象和字对象
3.2-2 编程原则
3.2-3 脉冲宽度调制输出 %PWM
3.2-4 脉冲发生器输出 %PLS
3.2-5 高速计数器,频率计和加 /减计数器功能 %FC
3.2-6 发送/接收报文和控制数据交换
3.2-7 移位寄存器功能块 %SBRi
3.2-8 步进计数器 %SCi
3.3 PLC 间的通讯
52
52
52
53
55
57
66
81
83
85
3
B
4.时钟功能
4.1 概述
4.2 调度模块
4.2-1 特性
4.2-2 时钟在程序中的应用
4.3 时间/日期标记
4.4 设置日期和时间
4.4-1 使用编程终端设置日期和时间
4.4-2 使用系统字更新日期和时间
5.系统位和系统字
5.1 系统位
5.1-1 系统位列表
5.1-2 系统位的详细说明
87
87
87
87
88
89
90
90
90
92
92
92
93
5.2 系统字
6.编程指南
6.1 编程建议
6.2 可逆性条件
6.3 可逆性规则
5.2-1 系统字列表
5.2-2 系统字的详细说明
96
96
97
102
102
105
105
4
Page
B
7. 通讯
7.1 TER 端口通讯
7.1-1 TER 端口特性
7.1-2 TER 端口的通用信息
7.2 TSX Neza 在 ASCII 模式下
7.3 TSX Neza 在 UNI-TELWAY模式下
7.3-1 TSX Neza Master在 UNI-TELWAY模式下
7.3-2 TSX Neza Slave 在 UNI-TELWAY模式下
7.3-3 UNI-TELWAY超时
7.3-4 TSX Neza (服务器)支持的 UNI-TE请求
7.4 TSX Neza 在 MODBUS模式下
7.4-1 MODBUS/ JBUS 特性
7.4-2 TSX Neza Slave 在 MODBUS 模式下
7.4.2-1 配置 MODBUS Slave
7.4.2-2 MODBUS Slave连接
7.4.2-3 MODBUS Slave 中,TSX Neza 支持的请求
7.4.2-4 COM LED 状态
7.4.2-5 相关的系统位和系统字
7.4-3 TSX Neza Slave 到UNI-TE 服务器的请求
7.4.3-1 识别请求
7.4.3-2 读CPU
7.4.3-3 RUN请求
7.4.3-4 STOP 请求
7.4.3-5 INIT请求
7.4-4 TSX Neza Master在 MODBUS 模式下
7.4.4-1 配置MODBUS Master
7.4.4-2 MODBUS Master连接
7.4.4-3 MODBUS Master 中,TSX Neza 支持的请求
7.4.4-4 COM LED 状态
7.4.4-5 相关的系统字
107
107
107
108
109
110
110
113
114
116
117
117
119
119
120
121
122
122
122
123
124
125
125
125
126
126
127
128
129
129
5
B
8.附录
7.4-5 标准MODBUS 请求
7.4.5-1 读 n 个内部位 %Mi
7.4.5-2 读n 个内部字 %MWi
7.4.5-3 写1 个内部位 %Mi
7.4.5-4 写1 个内部字 %MWi
7.4.5-5 写n 个内部位 %Mi
7.4.5-6 写 n 个内部字 %MWi
7.4.5-7 LRC的计算
7.4.5-8 CRC16的算法
7.4-6 限制
7.5 TSX08PRGCAB 多用途编程及通讯电缆
8.1 布尔指令列表的等价梯形图
8.2 PL707WIN 编程软件变量
130
130
131
132
133
133
134
134
135
136
137
138
138
139
8.3 安全特性
8.3-1 第一次输入密码
8.3-2 改变密码
8.3-3 从操作员级改为管理员级
8.3-4 删除密码
8.4 指令扫描时间和内存占用量
8.5 导入导出 ASCII程序文件和变量文件
8.5-1 ASCII程序文件
8.5-2 变量文件
8.6 故障定位与分析
8.6-1 使用PLC 面板上的 LED 状态分析故障
8.6-2 使用系统位和系统字分析故障
8.6.2-1系统位
8.6.2-2 系统字
142
142
142
143
143
144
148
148
149
150
150
151
151
152
6
5
1.概述
1.1总论
PLC 所执行的控制命令由用户编写的控制程序来决定。编写TSX Neza PLC 的控制程序需要使
用Neza PLC 所支持的编程软件 PL707WIN 。
PL707WIN 编程软件支持指令列表和梯型图编程语言。指令列表语言是一种基于行级的文件型
类布尔语言,它也可以用于处理数字操作。梯形图语言是一种基于梯级的图形布尔语言。
PL707WIN 还允许在指令列表语言和梯形图语言之间进行转换。
TSX08PALM HT01/05 掌上电脑编程器 (PPC) 可用于对 Neza PLC编程。
1.2 指令列表 (List 或 IL)
程序结构
一个用 PL707WIN 语言所写的程序包括一系列的不同类型的指令(1000 多条指令)
B
每个语句行都有一个自动生成的编号,一个指令代码和一个位类型或字类型的操作数。
指令举例
梯形图是逻辑表达式的一种图形化表现方式。它可由指令列表程序替代。指令列表程序是
指一系列由布尔指令序列构成的逻辑表达式。
003 LD %I0.1
编号
指令代码
操作数
1
B
指令
指令类型 举例
●
位指令 004 LD%M10 读内部位 %M10
●
块指令 008 LD%TM0 打开定时器%TM0
●
字指令 010 [%MW10:=%MW50+100] 加运算
●
程序指令 015 SR5 调用子程序#5
2
1.3梯形图
梯形图类似于用来描述继电器控制电路的逻辑图。主要的不同是,在梯形图编程中所有的输入都
由触点符号 ( -| |- ) 表示,所有的输出都由线圈符号 ( -( )- )表示,并且在梯形图指令集
中包括数字运算。
B
LS1 PB1 CR1 M1
LS1 PB1 CR1 M1
%I0.0 %I0.2 %I0.4 %Q0.4
( )
LS2 SS1
%I0.1 %I0.7
上图例是一个继电器逻辑电路的简化电路图和它的等效梯形图。请注意,梯形图中的每个输入与
继电器逻辑图中的开关设备相关就以触点形式表示。继电器逻辑图中的 M1 输出线圈在梯形图
中用输出线圈符号表示。梯形图中每个触点/线圈符号上的地址标号对应于PLC 相连的外部输
入/输出的位置。
用梯形图编写的程序由梯级构成—梯级是指画在象征电势的两条垂直栏里的特定图形指令集—并
由PLC 按顺序执行。图形指令集用于表示:
●
PLC 的输入/输出(按钮、传感器、继电器、指示灯……)
●
PLC 的功能(定时器、计数器……)
●
算术和逻辑运算(加法、除法、与、或……)
●
比较运算和其他数字运算(A<B、A=B、移位、循环……)
●
PLC 的内部变量(位、字……)
LS2 SS1
3
B
竖直和水平连接这些图形指令从而实现
一个或多个输出的与/或动作。
一个梯级只能支持一组相关指令。
例如,这个梯形图由两个梯级组成
%I0.1
%I0.3
%M42
( )
%M42
%Q1.2
( )
%MW22 :=%MW15 + KW1
4
1.3-1 编程原则
每个梯形图的梯级由 7 行 11 列组成,划分为两个区域:
1 2 3 4 5 6 7 8 9 10 11
行
1
2
3
4
5
6
7
测试区
B
动作区
●
测试区,它包括动作发生所必须具备的条件。
●
动作区,它包括由相关测试引起的输出或操作。
梯级形象化为 7 行 11 列的编程网格,并从最左上方的一个网格开始。在测试区编写测试指
令、 比较程序和功能程序,其中测试指令应该左对齐。测试逻辑将使得动作区中的线圈程序、 数
字运算和程序流控制指令保持连贯性。动作指令应该右对齐。梯级自上而下自左而右地执行(进
行测试和计算输出)。
除了梯级以外,在它上方还有一个梯级注释区。
梯级注释区用于说明梯级的逻辑目的。它包括梯级编号,所有标号 (%Li :) 或子程序说明
(SRi :),梯级标题和梯级注解。关于梯级注释区和相应指令列表行注释的详细说明,见节B.1.3-
3。
5
B
●
触点、 线圈和程序流指令
触点,线圈和程序流(跳转和子程序调用)
指令占用编程网格中的一格。功能块、 比较
块和操作块占用多格。
●
功能块
功能块位于编程网格的测试区。它必须写在
第一行; 在它的上面不可以有梯形图指令或
连接线。梯形图测试指令导入功能块的输入
边,并且测试指令中的与/或动作指令由功
能块的输出边导出。
功能块是垂直指向的,它占有四行两列编程
网格。
●
比较块
比较块位于编程网格中的测试区。它可以写
在测试区的任意行列,只要指令全长不超出
测试区。
比较块是水平走向的。它占有一行两列编程
网格。
●
操作块
操作块位于编程网格的动作区。它可以写在
动作区的任意一行。指令应该右对齐,所以
它写在右边直至最后一列。
操作块是水平指向的。它占有一行四列编程
网格。
6
1.3-2 梯形图与指令列表的可逆性
在本手册中,可逆性是指用于 TSX Neza 的编程软件 PL7 07 WIN 可将 TSX Neza 的应用程
序在梯形图编程语言和指令列表语言之间相互转换。可以通过设定来选择任意一种语言编写
PL707WIN 程序。也可以通过工具菜单中的梯形图/指令列表切换选项来完成个别梯形图梯级
与指令列表之间的相互转换。
B
%I0.5 %Q0.4
( )
%I0.4
要了解可逆性就应该清楚“梯级”和“序列”之间的关系。“梯级”是由梯形图编程指令集合组
成的逻辑表达式,“序列”则是由指令列表编程指令集合组成的。上图左边举例说明了一个在用
户梯形图程序中使用的通用梯级。右边是由指令列表序列表示的等效程序逻辑图。
本质上来说,不论用梯形图还是指令列表语言编写程序,内部都是以指令列表形式存储的。
PL707WIN 的一个优点是两种语言的程序结构相似。另外,虽然内部存储的指令是程序的指令
列表形式,但可根据用户的选择显示指令列表/梯形图两种不同视图,也可按两种不同的方式进
行编辑。其中指令列表是程序的基本形式,所以所有的梯形图都可以转换成指令列表,但是有些
指令列表逻辑不能转换成梯形图。为了保证从指令列表向梯形图的可逆性,必须参照节 B.1.3-
3 中的指令列表编程约定。
LD %I0.5
OR %I0.4
ST %Q0.4
7
B
1.3-3 可逆的指令列表编程约定
用指令列表语言编写的可逆功能块结构需要使用一些特定的指令。它们是:
- BLK (标志功能块的开始,定义梯级和功能块输入部分的起始)
- OUT_BLK (标志功能块输出部分的起始)
- END_BLK (标志功能块和梯级的结束)
指令列表程序不是一定要使用可逆的功能块才能正常运行。在编写指令列表程序时可使用一些不
可逆的指令。在节 B2.2 的功能块说明部分将介绍不可逆指令列表编程。另一个重要的约定是
避免使用某些指令列表指令,并避免某些指令和操作数的结合,因为在梯形图中没有相应的等效
值。例如,N 指令(位 Not 取布尔累加器的反值)就没有等效的梯形图指令。下面的表格列
出了所有不能转换成梯形图的指令列表指令。
指令列表指令 操作数 说明
JMPCN
N
ENDCN
XORN
%Li
没有
没有
任何数 XOR 之后进行 NOT 运算
条件为非时跳转
取反 (NOT)
条件为非时结束
无条件梯级也同样遵守指令列表编程约定以保证指令列表和梯形图之间的可逆性。无条件梯级是
指没有测试或条件的梯级,输出指令在任何情况下都能被激活或执行。下图列出了无条件梯级和
对应的等效指令列表序列。
%Q0.4
( )
%MW5 :=0
>>%L6
请注意,除了一条特殊指令以外,所有的无条件指令列表序列都以紧跟着数字 1 的装入指令开
始。这意味着将布尔累加器置 1 ,从而每次程序扫描时线圈(存储指令)都置 1 ,%MW5都
置 0 。上面提及的特殊指令是指无条件跳转指令。这条指令列表指令的执行与布尔累加器值无
关,所以就不用像上面两个例子那样将累加器置 1 。
LD 1
ST %Q0.4
LD 1
[%MW5 := 0]
JMP %L6
如果要将一个非完全可逆的指令列表程序转换成梯形图,则其可逆部分将以梯形图的形式显示,
而不可逆部分将以“梯形图指令列表梯级”显示。梯形图指令列表梯级就像一个小的指令列表编
辑器,使你可以看到并修改梯形图程序中的不可逆部分。
8
程序注释
指令列表编辑器允许使用指令列表注释行来注释程序。这些注释可与编程指令同行,也可以另外
起行。梯形图编辑器允许直接使用梯级上方的梯级注释区进行注释。
PL707WIN 的可逆性也表现在注释上。当把一个指令列表程序转换成梯形图时,PL707WIN 会
在梯级注释区内写入指令列表注释。简而言之,指令列表序列中的注释对应梯级注释区。
指令列表序列结束后的第一个注释行是用来做梯级标题的(该行无指令)。其后的注释(如果存
在的话),是可用于梯级注释区的主体注释。如果存在主体注释,则可忽略指令列表序列间的注
释行,因为这类注释行通常还包含了指令列表指令。
B
注意 :注释可用中文输入,但两侧的括号和*号“(*...*)”需为英文输入状态(半角状态)。
9
B
当含有梯级注释区的梯级转换成指令列表,注释区中的注释将被插入指令列表序列之间。所有标
号和子程序说明 (%Li : 或 SRi:) 紧跟在注释区之后,并在指令列表序列开始之前。如果梯级是
由指令列表转换而来,则会忽略注释,但在指令列表编辑器中会恢复在原转换中被忽略的注释。
10
2.指令集
2.1 布尔指令
2.1-1 主要位对象定义
●
I/O 位
该类位的地址系统是 I/O 电状态的“逻辑映像”,被存在数据存储器中,每次程序扫描时进行
更新。
●
内部位
内部位是用户使用程序时内部 I/O 存储区域。
注意:未处于使用状态的 I/O 位不可以用作内部位
●
系统位
系统位 %S0 到 %S127 用于监控 PLC 及应用程序的正常运行。这类位的用途和使用方法见
B 部分第 5 节。
●
字抽取位: 见节 3.1-1
B
操作数位列表
下表列出了所有类型的操作数位。
类型 地址(或值) 最大个数 写访问 (1) 见节
立即值 0 或 1_ _ _
输入位 %Ii.j. (2) 48 不是 A 部分
输出位 %Qi.j (2) 32 是 A 部分
内部位 %Mi 128 (3) 是
系统位 %Si 128 根据 i 5.1
功能块位 %TMi.Q, %DRi.F等 _ 不是(4) 2.2-1
可逆功能块位 E,D,F,Q,TH0, TH1 不是 3.3-1
字抽取位 可变 可变 可变 3.1-1
(1) 在程序中写或者由终端在数据编辑器中写。
(2) 当 i = 0为本体 PLC 或对等 PLC, i=1-3 为 1-3号扩展 I/O, j=I/O 点。 I/O位可在数据编辑
器中置为 0 或 1 。
(3) 如果发生电源断电则保存前 64 位。
(4) 除了 %SBRi.j 和 %SCi.j,这些位都是可读写的。
11
B
2.1-2 布尔指令说明
布尔指令可与梯形图语言元素相比较。
测试元件, 例如: LD(装入)指令等效于常开触点。
LD %I0.0 若控制位为状态 1 ,则闭合常开触点。
动作元件, 例如: ST(存储)指令等效于一个线圈。
ST %Q0.0 相关位对象取相应累加器的位逻辑值(前一次逻辑运算的结果)
布尔等式:
LD %I0.0 将测试元件的布尔值用于动作元件。
AND %I0.1
ST %Q0.0
上升沿和下降沿
测试指令可用于检测 PLC 输入的上升或下降沿。当第 n 次扫描所得输入与第 n-1次不同,且
在该扫描中保持不变,就表明检测到一个沿。
LDR 指令( R:上升沿)等效于上升沿触点:
LDR %I0.0
%I0.0
P
(1)
LDF 指令( F:下降沿)等效于一个下降沿
触点:
LDR %I0.0
%I0.0
N
(2)
上升沿: 检测到当前控制输入从 0 变到 1 。
%I0.2
1 个PLC 扫描
布尔值
上升沿和下降沿指令不仅可以应用于输入%I ,
还可应用于内部位(前32 个,%M0 ~%M31 )
来检测其它位(或布尔值)的边沿。
右边是一个例子,位 %M11 检测到位 %M0
的上升沿。
(1) 上升沿跳变触点
(2) 下降沿跳变触点
(3) 当发生冷启动或热启动时,即使输入保持 1,应用程序也会测到一个上升沿。为消除该现象,
要用指令 LD %S1 和 ENDC作为程序的开始。
时间
时间
下降沿: 检测到当前控制输入从 1 变到 0 。
%I0.2
1 个 PLC 扫描
布尔值
时间
时间
LD %M0
ANDN %M10
ST %M11
LD %M11
%M0 %M10 %M11
( )
%M11 %M10
( )
ST %M10
12
指令格式
布尔指令用粗体字表示。每个等式由相应的
梯形图表示。
装入指令 LD LDN LDR LDF
指令LD 、LDN 、LDR 和 LDF 分别对应于常开、常闭、上升沿和下降沿触点。
B
%I0.1
%M0
%I0.2
P
%I0.3
N
指令 操作数
LD 0/1,%I,%Q,%M,%S,%BLK.x,%*:Xk,[
LDN %I,%Q,%M,%S,%BLK.x,%*:Xk,[
LDR %I %M
LDF %I %M
%Q0.3
%Q0.2
%Q0.4
%Q0.5
操作数列表
0/1
%I
%Q
%M
%S
%BLK.x
%* :Xk
[
立即值 0 或 1
PLC 输入 %Ii.j
PLC 输出 %Qi.j
内部位%Mi
系统位%Si
功能块位,列如%TMi.Q
字抽取位,列如%MWi:Xk
比较表达式
例如[%MWi<1000]
( )
( )
( )
( )
LD %I0.1
ST %Q0.3
LDN %M0
ST %Q0.2
LDR %I0.2
ST %Q0.4
LDF %I0.3
ST %Q0.5
LD LDN LDR LDF
%I0.1 %M0 %I0.2 %I0.3
%Q0.3 %Q0.2 %Q0.4 %Q0.5
时序图
四张时序图组合在一起。
LD
%I0.1
%Q0.3
LD 指令的时序图
输入状态
输出状态
13
B
2.1-3 装入指令 LD LDN LDR LDF
指令LD 、LDN 、LDR 和 LDF 分别对应常开、常闭、上升沿和下降沿触点。(LDR 和 LDF
只用于 PLC 的输入和前32 个内部位,%M0 ~%M31 )。
%I0.1
%Q0.3
( )
LD %I0.1
ST %Q0.3
%M0 %Q0.2
/
( )
LDN %M0
ST %Q0.2
%I0.2
P
%I0.3
N
%Q0.4
( )
%Q0.5
( )
LDR %I0.2
ST %Q0.4
LDF %I0.3
ST %Q0.5
指令 操作数
LD 0/1,%I,%Q,%M,%S,%BLK.x,%* :Xk,[
LDN %I,%Q,%M,%S,%BLK.x,%*:Xk,[
LDR %I %M
LDF %I %M
LD LDN LDR LDF
%I0.1 %M0 %I0.2 %I0.3
%Q0.3 %Q0.2 %Q0.4 %Q0.5
2.1-4 赋值指令 ST STN S R
指令ST、STN、S 和 R 分别对应直接、取反、置位和复位的线圈。
%I0.1
%I0.2
指令 操作数
ST %Q,%M,%S,%BLK,x,%* :Xk
STN %Q,%M,%S,%BLK,x, %*:Xk
S %Q,%M,%S,%BLK.x,%* :Xk
LDF %Q,%M,%S,%BLK.x,%* :Xk
%Q0.3
( )
%Q0.2
/
( )
%Q0.4
S
( )
%Q0.4
R
( )
LD %I0.1
ST %Q0.3
STN %Q0.2
S %Q0.4
LD %I0.2
R %Q0.4
14
2.1-5 逻辑与指令: AND ANDN ANDR ANDF
这类指令在操作数(或它的取反数、上升沿和下降沿)和前面指令所产生的布尔结果之间进行
逻辑与操作。
B
%I0.1 %M1
%Q0.3
( )
%M2 %I0.2 %Q0.2
( )
%I0.3 %I0.4
P
%M3 %I0.5
N
指令 操作数
AND 0/1,%I,%Q,%M,%S,%BLK,x,%*:Xk,[
ANDN %I,%Q,%M,%S,%BLK.x,%* :Xk,[
ANDR %I %M
ANDF %I %M
%Q0.4
S
( )
%Q0.5
S
( )
LD %I0.1
AND %M1
ST %Q0.3
LD %M2
ANDN %I0.2
ST %Q0.2
LD %I0.3
ANDR %I0.4
S %Q0.4
LD %M3
ANDF %I0.5
S %Q0.5
AND ANDN ANDR ANDF
%I0.1 %M2 %I0.3 %M3
%M1 %I0.2 %I0.4 %I0.5
%Q0.3 %Q0.2 %Q0.4 %Q0.5
2.1-6 逻辑或指令: OR ORN ORR ORF
这条指令在操作数(或它的取反数、上升沿和下降沿)和前面指令所产生的布尔结果之间进行
逻辑或操作。
%I0.1
%Q0.3
( )
%M1
%M2
%Q0.2
( )
%I0.2
%M3
%I0.4
P
%I0.5
N
%I0.6
N
指令 操作数
OR 0/1,%I,%Q,%M,%S,%BLK,x,%*:Xk
ORN %I,%Q,%M,%S,%BLK.x,%*:Xk
ORR %I %M
ORF %I %M
%Q0.4
S
( )
%Q0.5
S
( )
LD %I0.1
OR %M1
ST %Q0.3
LD %M2
ORN %I0.2
ST %Q0.2
LD %M3
ORR %I0.4
S %Q0.4
LDF %I0.5
ORF %I0.6
S %Q0.5
OR ORN ORR ORF
%I0.1 %M2 %M3 %I0.5
%M1 %I0.2 %I0.4 %I0.6
%Q0.3 %Q0.2 %Q0.4 %Q0.5
15
B
2.1-7 异或指令: XOR XORN XORR XORF
这条指令在操作数(或它的取反数、上升沿和下降沿)和前面指令所产生的布尔结果之间进行
逻辑异或操作。
异或指令可由以下任意一种方式执行,例如:
LD %I0.1
%I0.1
%M1
XOR ( )
%Q0.3
XOR %M1
ST %Q0.3
%I0.1
%M1
%Q0.3
( )
%M1 %I0.1
指令 操作数
XOR %I, % Q , % M , % S , % B L K .x ,% * : X k
XORN %I,%Q,%M,%S,%BLK.x,%*:Xk
XORR %I %M
XORF %I %M
特殊情况
●
在梯形图中异或线圈不能
- 位于梯级的左边(首位置),
- 并行放置
例如:试图加入下面的梯级会发生确认错误。
LD %I0.1
ANDN %M1
OR( %M1
ANDN %I0.1
)
ST %Q0.3
XOR
%I0.1
%M1
%Q0.3
%I1.5 %Q1.3
XOR
( )
%M10
16
2.1-8 取非指令: N
B
这条指令将前面指令的执行结果取反。
指令 操作数
N
_
LD %I0.1
OR %M2
ST %Q0.2
N
AND %M3
ST %Q0.3
%I0.1
%M2
注意:指令 N 不可逆。
%Q0.2
%M3
%Q0.3
2.1-9 圆括号的使用
与指令和或指令可使用圆括号。圆括号可用于梯形图中的并列部分。左括号紧跟在与和或指令之
后,右括号则表示执行括号内的所有内容。每个左括号必须有一个右括号与其相对应。
例如:AND(...)
%I0.0
%I0.2
%I0.0
例如:OR(...)
%I0.0
%I0.2
%I0.1
%I0.1
%I0.2
%I0.1
%I0.3
%Q0.0
( )
%Q0.0
( )
%Q0.0
( )
LD %I0.0
AND %I0.1
OR %I0.2
ST %Q0.0
LD %I0.0
AND( %I0.1
OR %I0.2
)
ST %Q0.0
LD %I0.0
AND %I0.1
OR( %I0.2
AND %I0.3
)
ST %Q0.0
17
B
下列操作可以加上圆括号:N, F, R 或 [
●
N 取反,例如 AND(N 或 OR(N
●
R 上升沿,例如 AND(R 或 OR(R
●
F 下降沿,例如 AND(F 或 OR(F
●
[ 比较,见 3.1-5 节
%I0.0
%I0.1
%Q0.0
( )
%I0.2
括号的嵌套
允许嵌套 8 层括号。
例如
%I0.3
LD %I0.0
AND %I0.1
OR(N %I0.2
AND %I0.3
)
ST %Q0.0
LD %I0.0
%I0.0
%I0.1
%I0.2
%M3
%Q0.0
( )
AND( %I0.1
OR(N %I0.2
AND %M3
)
)
ST %Q0.0
例如
LD %I0.1
%I0.3
%I0.6
%I0.4
%Q0.0
( )
AND( %I0.2
AND %I0.3
OR( %I0.5
AND %I0.6
)
AND %I0.4
OR( %I0.7
AND %I0.8
)
)
ST %Q0.0
%I0.1
%I0.2
%I0.5
%I0.7 %I0.8
注意:
●
左右括号应对称。
●
标号 %Li : 和 子程序 SRi: 不可以加括号。类似的还有跳转指令 (JMP),子程序指令
(SRi) 和功能块指令。详细说明见 2.4-3 节。
●
赋值指令ST、STN、S 和 R 不可置于括号内。
18
2.1-10 指令 MPS MRD MPP
这三条指令用于处理与线圈的连路。它们使用一个临时存储区作为存放最多 8 个布尔表达式的
堆栈。指令 MPS 将累加器值(最近一次逻辑运算的结果)推入堆栈顶部,并使堆栈中的其他
值向堆栈底部移动一格。指令 MRD 将堆栈顶部值读入累加器。指令 MPP 将堆栈顶部值读入
累加器并将堆栈内其他值向顶部移动一格。
例如:
B
%I0.1 %M0
MPS
MRD
MPP
%I0.0
%I0.1 %I0.3
%I0.4
%M10
%I0.1
%I0.2
%I0.3
%I0.4
%M0
%M1
%Q0.0
( )
%Q0.1
( )
%Q0.2
( )
%Q0.3
( )
%Q0.0
( )
%Q0.1
( )
%Q0.2
( )
%Q0.3
( )
LD %I0.0
AND %M0
MPS
AND %I0.1
ST %Q0.0
MRD
AND %I0.2
ST %Q0.1
MRD
AND %I0.3
ST %Q0.2
MPP
AND %I0.4
ST %Q0.3
LD %I0.0
MPS
AND %I0.1
MPS
AND( %I0.3
OR %M0
)
ST %Q0.0
MPP
ANDN %M1
ST %Q0.1
MRD
AND %I0.4
ST %Q0.2
MPP
AND %M10
ST %Q0.3
注意:以上指令不能用于括号内。
19
B
2.1-11 特殊梯形图指令 OPEN 和 SHORT
为了便于梯形图的编程,在调试和排除故障时可使用这两条指令。OPEN 和 SHORT 指令可
以通过“断路”或“短路”来改变梯级的逻辑值。“断路”是指不管梯级的逻辑值如何,断开它
与后面梯级的连路; “短路” 是指不管梯级的逻辑值如何, 连通它与后面梯级的连路。
其后紧跟立即值 1 和 0 的 OR 和 AND 指令可作为 OPEN 和 SHORT 指令,如下面的程序。
LD %I0.0
%I0.1
%Q1.5
%I0.9
SHORT
%M3
/
OPEN
%Q0.1
( )
%Q1.6
( )
OR %Q1.5
ANDN %M3
AND 0
ST %Q0.1
LD %I0.9
OR 1
ST %Q1.6
20
2.2 标准功能块
2.2-1 与标准功能块相关的位对象和字对象
建立功能块位对象和特殊字。
●
位对象:
它们对应于功能块的输出,可由布尔测试指令
进行访问。
它们有多种被寻址方式:
- 直接寻址(例如 LD E),条件是它们在
可逆编程中与块相连。(见 2.2-2 节)
- 指定功能块类型(例如 LD %Ci.E),输入
可以指令方式访问。
●
字对象:
它们对应于:
- 功能块配置参数,它们中有的能被程序访问
(例如预设置参数),有的则不能(例如时基),
- 当前值(例如 %Ci.V 当前计数值)。
%Ci
R
S
ADJ Y
%CI.P 9999
CU
CD
加/减计数器功能块
E
D
F
B
程序可访问的功能块字对象和位对象列表
标准功能块
定时器
%TMi (i=0-31 )
加/减
计数器
%Ci (i=0 to-15)
LIFO/FIFO 字
寄存器
%Ri (i= 0-3 )
鼓形控制器 字
对应字和位
字 当前值
预设值
位 定时器输出
字
位
位
当前值
预设值
下溢输出(空)
预设达到输出
满溢输出(满)
寄存器输入
寄存器输出
寄存器满输出
寄存器空输出
当前步号
地址
%TMi.V
%TMi.P
%TMi.Q
%Ci.V
%Ci.P
%Ci.E
%Ci.D
%Ci.F
%Ri.I
%Ri.O
%Ri.F
%Ri.E
%DRi.S
写访问 见节
不能
能
不能
不能
能
不能
不能
不能
能
能
不能
不能
能
2.2-3
2.2-4
2.2-5
2.2-6
%DRi (i=0-3)
位
当前步为最后一步
%DRi.F
不能
21
B
2.2-2 编程原则
标准功能块有两种编程方式:
●
使用标准功能块指令(例如 BLK %TM2 ):梯形图语言中这种可逆的编程方法使得运算可在
程序的功能块中执行。
●
使用特殊指令(例如 CU %Ci ):这种不可逆的方法运算要在程序的几个块输入处执行
(例如 行100 CU %C1 , 行 174 CD %C1 , 行 209 LD %C1.D)。
标准功能块可逆编程的原则
这种编程使用指令 BLK , OUT_BLK 和 END_BLK .
BLK 表示功能块的开始
OUT_BLK 表示接通功能块的输出
END_BLK 表示功能块的结束
带有输出的可逆编程举例
%I1.2
%I1.1
%M0
N
%C8
R
S
ADJY
%Ci.P 9999
CU
CD
没有输出的可逆编程举例
%I1.2
%C8.D
%I1.1
%M0
%MI %Q0.4
N
%C8
R
S
ADJY
%Ci .P 9999
CU
CD
E
%M1 %Q0.4
D
F
E
D
F
( )
( )
BLK %C8
LDF %I1.1
R
LD %I1.2
AND %M0
CU
OUT_BLK
LD D
AND %M1
ST %Q0.4
END_BLK
BLK %C8
LDF %I1.1
R
LD %I1.2
AND %M0
CU
END_BLK
LD %C8.D
AND %M1
ST %Q0.4
输入操作
输出操作
输入操作
输出操作
注意:
只有相应功能块中的测试和输入指令可以放在指令 BLK 和 OUT_BLK 之间(如果程序中没有
OUT_BLK 就放在 BLK 和 END_BLK之间)。
22
2.2-3 定时器功能块 %TMi
有三种定时器:
%TMi
IN
Q
●
TON:这种定时器用于控制导通-延时动作。这
种延时是可编程的并可由编程终端进行修改。
●
TOF:这种定时器用于控制关断-延时动作。这
TYPE TON
TB 1 min
ADJY
%TMi.P 9999
种延时是可编程的并可由编程终端进行修改。
●
TP: 这种定时器用于产生精确宽度的脉冲。脉
冲宽度是可编程的并可根据编程终端进行修改。
定时器功能块
注意:预设值越大,定时器的相对精确度越高。
特性
定时器编号 %TMi 0到 31
●
类型 TON
TOF
TP
时基 TB 1分钟(默认值)、1 秒、100 毫秒,10毫秒,1
毫秒(用于TM0 和 TM1 )
预设值 %TMi.P 0-%TMi.P-9999 . 可由程序读取、测试和写入,
默认值为 9999。其长度和延迟应等于%TMi.P
x TB.
导通-延时(默认值)
●
关断-延时
●
脉冲(单稳态)
B
数据编辑器 Y/N Y:可以在数据编辑器中改变预设值 %TMi.P 。
N:在数据编辑器中不能访问。
设置输入 IN 定时器从上升沿(TON 或TP 类型)或下降沿
(或指令)
(TOF )类型开始。
定时器输出
Q 根据实现的功能:TON 、TOF 或 TP ,相关位
%TMi.Q置 1。
(1)根据数据编辑器终端修改 %TMi.V
23