Schneider Modicon TSX Neza User Manual

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,LDNLDRLDF
2.1-4 赋值指令ST,STN,S,R
2.1-5 逻辑与指令ANDANDNANDRANDF
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
指令 MPSMRDMPP
特殊梯形图指令 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 SlaveUNI-TE 服务器的请求
7.4.3-1 识别请求
7.4.3-2CPU
7.4.3-3 RUN请求
7.4.3-4 STOP 请求
7.4.3-5 INIT请求
7.4-4 TSX Neza MasterMODBUS 模式下
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 指令列表(ListIL)
程序结构
一个用 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 编程原则
每个梯形图的梯级由 711 列组成,划分为两个区域: 
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7
测试区
B
动作区
测试区,它包括动作发生所必须具备的条件。
动作区,它包括由相关测试引起的输出或操作。
梯级形象化为 711 列的编程网格,并从最左上方的一个网格开始。在测试区编写测试指 令、 比较程序和功能程序,其中测试指令应该左对齐。测试逻辑将使得动作区中的线圈程序、 数 字运算和程序流控制指令保持连贯性。动作指令应该右对齐。梯级自上而下自左而右地执行(进 行测试和计算输出)。
除了梯级以外,在它上方还有一个梯级注释区。 梯级注释区用于说明梯级的逻辑目的。它包括梯级编号,所有标号 (%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) 见节
立即值 01___ 输入位 %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 或对等 PLCi=1-3 1-3号扩展 I/Oj=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 %S1ENDC作为程序的开始。
时间
时间
下降沿:检测到当前控制输入从 1 变到 0
%I0.2
1PLC 扫描
布尔值
时间
时间
LD %M0 ANDN %M10 ST %M11 LD %M11
%M0 %M10 %M11
( )
%M11 %M10
( )
ST %M10
12
指令格式
布尔指令用粗体字表示。每个等式由相应的 梯形图表示。
装入指令 LD LDN LDR LDF 指令LDLDNLDR 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
指令LDLDNLDRLDF 分别对应常开、常闭、上升沿和下降沿触点。(LDRLDF 只用于 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、SR 分别对应直接、取反、置位和复位的线圈。
%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、SR 不可置于括号内。
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
为了便于梯形图的编程,在调试和排除故障时可使用这两条指令。OPENSHORT 指令可 以通过“断路”或“短路”来改变梯级的逻辑值。“断路”是指不管梯级的逻辑值如何,断开它 与后面梯级的连路; “短路” 是指不管梯级的逻辑值如何, 连通它与后面梯级的连路。  其后紧跟立即值 10ORAND 指令可作为 OPENSHORT 指令,如下面的程序。
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_BLKEND_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
输入操作
输出操作
输入操作
输出操作
注意:
只有相应功能块中的测试和输入指令可以放在指令 BLKOUT_BLK 之间(如果程序中没有 OUT_BLK 就放在 BLKEND_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
毫秒(用于TM0TM1) 预设值 %TMi.P 0-%TMi.P-9999. 可由程序读取、测试和写入, 默认值为 9999。其长度和延迟应等于%TMi.P
x TB.
导通-延时(默认值)
关断-延时
脉冲(单稳态)
B
数据编辑器 Y/N Y:可以在数据编辑器中改变预设值%TMi.P N:在数据编辑器中不能访问。
设置输入 IN 定时器从上升沿(TON TP 类型)或下降沿
(或指令)
TOF)类型开始。
定时器输出
Q 根据实现的功能:TONTOF TP,相关位
%TMi.Q1
(1)根据数据编辑器终端修改%TMi.V
23
B
用作导通-延迟定时器:TON
IN
Q
%TMi.P %TMi.V
类型类型
类型
类型类型
用作关断-延迟定时器:TOF类型
IN
定时器在输入 IN (1) 的上升沿开始工作:当前 值 %TMi.V 以时基TB 为单位从 0 增加到 %TMi .P。当当前值达到 %TMi.P 时,输出位 %TMi.Q 变为 1。当输入 IN (2) 被观测到下降 沿,即使定时器还未达到 % TMi.P,定时器也要 停止工作。
在遇到输入 IN (1) 的上升沿时,当前值 %TMi.V 置为 0 (即使定时器仍在工作)。当输入 IN 被 观测到下降沿,定时器开始工作。当前值以时基 TB 为单位从0 增加到%TMi.P。当输入 IN
Q
%TMi.P %TMi.V
用作脉冲:TP类型
IN
Q
%TMi.P %TMi.V
观测到一个上升沿时,输出位%TMi.Q 变为 1, 当当前值达到 %TMi.P 时,定时器变回为 0
在输入 IN (1) 的上升沿定时器开始工作:当定 时器开始工作时,输出位%TMi.Q变为1,当前 值 %TMi.V0 开始以时基 TB 为单位增加至
%TMi.P,当当前值达到 %TMi.P 时,输出位 %TMi.Q 变回为 0。 这个定时器不可复位。 如果 %TMi.V 等于 %TMi.P,且输入 IN 的状态为 0,则 %TMi.V 置为 0
(1) 指令 IN 被激活 (2) 指令 IN 被检测到
24
编程和配置
不论定时器的功能块用途如何,它们的编程方法相同。配置时选择功能 TONTOFTP
可逆编程
BLK %TM1
%I0.1
%TMi IN
TYPE TON TB 1 min ADJY %TMi.P 9999
配置
在配置时必须加入以下参数。
类型: TONTOF 或 TP
TB: 1分钟、1秒 、100毫秒、10毫秒或
1毫秒
%TMi.P: 09999
调节: Y 到 N
%Q0.3
Q
( )
LD %I0.1
IN
OUT_BLK LD Q ST %Q0.3 END_BLK
不可逆编程
LD %I0.1
IN %TM1
LD %TM1.Q ST %Q0.3
B
在程序中修改定时器设定值 在程序中只需对%TMi.P 进行赋值,即可修改定时器的设定值,如:
%TM0.P: =100
程序例是将定时器0 的设定值设为 100xTB
特殊情况
冷启动的影响: (%S0=1)
- 强置当前值为 0,
- 置输出 %TMi.Q0,
- 预设值被重设为配置过程中定义的值。
热启动的影响: (%S1=1) 对定时器的当前值和预设置都没有影响。当电源损耗时当前值不
变。
PLC 停止工作的影响: 停止 PLC 不会停止定时器,定时器当前值会继续增加。
程序跳转的影响:跳过一个定时器块并不停止定时器。定时器会持续增加直到达到预设值
(%TMi.P)。此时,定时器块输出位 Q (%TMi.Q)的状态改变; 然而,与块输出直接相连的输 出侧没有被激活,不能被 PLC 扫描到。
%TMi.Q(完成位)测试:程序中最好只进行一次位 %TMi.Q 测试。
修改预设值 %TMi.P
才会起作用。
的影响:只有当定时器重新被激活时,根据指令改变或调整预设值
25
B
时基为 1 毫秒的定时器
1毫秒时基只适用于定时器 %TM0%TM1。 如果用户需要,可使用四个系统字%SW76%SW77%SW78%SW79作为 " 时钟影象 "。
由程序或编程终端给这四个系统字赋予一个正值,则它们以毫秒为单位进行递减,赋予的这个 正值即为定时器预设值。
可以通过将相应的系统字中的 0-15 位中的 1 个位置1,来停止定时,复位为 0 来允许启动定 时器。
编程举例
LDR%I0.1 (在 %I0.1 的上升沿启动定时器) [%SW76:=XXXX] (XXXX= 预设值) LD %I0.2 (输入 I0.2,停止该定时器) ST %SW76:X15 LD [%SW76=0] (定时器结束测试) ST %M0
..........
%I0.1
P
%I0.2
%SW76=0
%SW76:=XXXX
%SW76:X15
( )
%M0
( )
26
2.2-4 加/减计数器功能块 %Ci
%Ci
R
S
ADJ Y %Ci.P 9999
CU
E
D
B
加/减计数器功能块用于加/减记录事件数。这 两种运算可以同时进行。
CD
加/减计数器功能块
F
特性
计数器编号 %Ci 015 当前值 %Ci.V 字根据输入(或指令)CUCD 进行
增加或减少。可以用程序(1)读取或测 试,但不可以写入。
预设值 %Ci.P 0-%Ci.P-9999.字可以读取、测试和写入
(默认值:9999)。
根据终端编辑 Y/N Y:可在数据编辑器中修改预设值 N: 不可访问数据编辑器。
复位输入(或指令) R 状态为1:%Ci.V = 0 设置输入(或指令) S 状态为1: %Ci.V = %Ci.P.
加运算输入(或指令) CU 在上升沿处增加 %Ci.V 。 减运算输入(或指令) CD 在上升沿处减少 %Ci.V
(2)
下溢输出 E(空值)
相应位 %Ci.E=1,当减计数器 %Ci.V0 改变至 9999 (当 %Ci.V 到达 9999 后置 为 1,如果计数器继续减少则复位为 0 )。
预设输出 D(完成) 上溢输出 F(满溢)
%Ci.V=%Ci.P 时,相应位 %Ci.D=1。 当 %Ci.V9999 变到 0 时(当 %Ci.V
达到 0 时置 1 ,如果计数器继续增加则复 位为 0 。),相应位 %Ci.F =1
(1)可以根据数据编辑器的终端对 %Ci.V 进行修改。 (2)可以在程序中对 %Ci.P 进行赋值,修改计数器设定值。
27
B
操作
加计数:当加计数中的输入 CU 出现一个上升沿(或指令 CU 被激活),当前值 %Ci.V
1。当这个值等于预设值 %Ci.P,输出 D 输出,位 %Ci.D 变为 1。当 %Ci.V9999 变为 0,输出位 %Ci.F状态变为 1,如果计数器继续增加则状态复位为 0
减计数:当减计数中的输入 CD 出现一个上升沿(或指令 CD 被激活),当前值 %Ci.V
1。当 %Ci.V0 变为 9999,输出位 %Ci.E(减计数溢出)状态变为 1,如果计数器继续 减少则状态复位为 0。
加/减计数:要同时使用加计数和减计数功能(或者激活指令 CDCU),则必须对这2
个相应的输入 CUCD 加以控制。连续扫描这两个输入,如果它们都为 1,当前值保留不 变。
复位:当输入置为 1(或者指令被激活),当前值 %Ci.V 被强置为 0,输 出 %Ci.E%Ci.D
%Ci.F 则置为 0,并且复位输入优先。
置值:如果输入 S 的状态为 1 (或者指令 S 激活)而且复位输入状态为 0 (指令 R
激活),当前值 %Ci.V%Ci.P 的值,而且输出 %Ci.D 置为 1
特殊情况
冷启动的影响: (%S0=1)
- 当前值 %Ci.V 置为 0。
- 输出位 %Ci.E、 %Ci.D%Ci.F 都置为 0
- 根据配置初始化预设值。
改和调整会产生影响。
PLC
停止工作后,热启动的影响 (%S1=1): 对计数器 (%Ci.V) 的当前值没有影响。
修改预设值 %Ci.P 的影响:当功能块在应用时(有输出被激活),根据指令进行的预设值修
28
配置和编程
例如:对项目计数直至 5000。输入 %I1.2 的每个脉冲(当内部位 %M01 时)都使加计 数器 %C8 增加,直至达到它的预设值(位 %C8.D=1)。计数器的值由输入 %I1.1复位。
B
%I1.1
%I1.2
%C8.D
%M0
可逆编程
BLK %C8 LD %I1.1
R
LD %I1.2 AND %M0
CU
END_BLK LD %C8.D ST %Q0.0
%C8
R
S
ADJY %CI .P 9999
CU
CD
配置
E
D
F
%Q0.0
配置时必须加入下列参数:
%Ci.P, 在该例中设为 5000
可调整: 是
( )
不可逆编程
LD %I1.1 R %C8 LD %I1.2 AND %M0
CU %C8
LD %C8.D ST %Q0.0
29
B
2.2-5 LIFO/FIFO 寄存器功能块 %Ri
寄存器是一个存储 1616 位字的内存块,
%Ri
R
I TYPE FIFO
O
寄存器功能块
E
F
有两种存储方式:
队列式(先进先出),如前文提及的 FIFO
堆栈式(后进先出),如前文提及的 LIFO
特性
寄存器编号 %Ri 03 类型 FIFO 队列式(默认值)  LIFO 堆栈式 输入字 %Ri.I 寄存器输入字,可读取、测试和写入。 输出字 %Ri.O 寄存器输出字,可读取、测试和写入。 存储输入(或指令) I (In) 在上升沿处,将字 %Ri.I 的值存入寄存器。 取出输入(或指令) O (Out) 在上升沿处,将一个数据字装入字 %Ri.O 内。 复位输入(或指令) R (Reset) %Ri.O 状态为 1 时,初始化寄存器。 空输出 E (Empty) 对应位 %Ri.E 表示寄存器为空。可测试。 满输出 F (Full) 对应位 %Ri.F 表示寄存器为满。可测试。
30
操作
FIFO(先进先出)
最先进入的数据项最先被取出。 当接到一个存储请求(输入 I 处的上升沿或者 指令 I 被激活),输入字 %Ri.I 的值(已经被 装入)被存放到队列的顶端(图a)。 当队列已满时(输出 F=1),不可以再存入数据。 当接到一个取出请求(输入 O 处的上升沿或者 指令 O 被激活 ),队列最底部的数据字被装入 输出字 %Ri.O, 并且寄存器队列中的数据都往 底部移一格(图b)。 当寄存器是空的时候(输出 E=1),不能再取出 数据。输出字 %Ri.O不变,保持原值。 可以在任何时候复位寄存器(输入 R1 或 者指令 R 被激活)。 
例如:
%Ri.I 的值存入队列的顶端。
20
%Ri.I (a)
取出第一个数据项装入 %Ri.O
20 80
50
20
20 80
50
(b) %Ri.O
50
B
LIFO(后进先出)
最后进入的数据项最先被取出。 当接到一个存储请求(输入 I 处的上升沿或者 指令 I 被激活),输入字 %Ri.I 的值(已经被 装入)被存放到堆栈的顶端(图c)。 当堆栈已满时(输出 F=1),不可以再存入数据。 当接到一个取出请求(输入 O 处的上升沿或者 指令 O 被激活 ),堆栈顶端的数据(最后进入 的数据)被装入输出位 %Ri.O(图d)。 当寄存器是空的时候(输出 E=1),不能再取出 数据。输出字 %Ri.O 不变,保持原值。可以在 任何时候复位寄存器(输入 R1 或者指令
R 被激活)。 指针指向堆栈的顶端。
80
例如:
%Ri.I 的值存入堆栈的顶端。
20
%Ri.I
(C)
把堆栈顶端的数据项取出装入 %Ri.O
20 80 50
20 80 50
%Ri.O 20
(d)
80 50
31
B
特殊情况
冷启动的影响:(%S0=1) 初始化寄存器输出位 %Ri.E,设输出 E 为 1, 并把字 %Ri.I 和
%Ri.O 复位为 0
热启动的影响:(%S1=1) 对寄存器的值和输出位的状态没有影响。
编程和配置
%M1
%I0.3
%I0.3
%I0.2
%R2.E
/
%R2.F
/
可逆程序
BLK %R2 LD %M1
I
LD %I0.3
O
END_BLK LD %I0.3 ANDN %R2.E [%MW20:=%R2.O] LD %I0.2 ANDN %R2.F [%R2.I:=%MW34] ST %M1
%R2
R
I TYPE FIFO
O
%MW20:=%R2.O
%R2.I:=%MW34
E
F
%M1
( )
该例演示了寄存器 R2 未满时 (%R2.F=0),使 用存储请求 %I0.2 把字 %MW34 的内容装入 %R2.I。存储请求由 %M1 来实现。取出请求由 输入 %I0.3 来实现,此时若寄存器不空 (%R2.E=0),则 %R2.O 的内容被装入 %MW20
配置
配置时必须加入寄存器类型这个参数:FIFO(默 认值)或 LIFO
不可逆程序
LD %M1
I %R2
LD %I0.3
O %R2
LD %R2.E [%MW20:=%R2.O] LD %I0.2 ANDN %R2.F [%R2.I:=%MW34] ST %M1
32
2.2-6 鼓形控制器功能块 %DRi
B
鼓形控制器功能块的工作原理与机电类电子凸轮
%DRi
R
U STEPS 8
鼓形控制器功能块
F
特性
编号 %DRi 当前步号 %DRi.S
步数 回到 0 步输入(或指令) R (RESET)
器相似,也是根据外部环境改变步序。机电类电 子凸轮器的控制器中凸轮的高点给出的命令由该 控制器执行。相应的,在鼓形控制器功能块中,用 状态为 1 来代表每一步的高点,并赋值给输出位
%Qi.j 或内部位 %Mi 作为控制位。
03 0-%DRi.S-7 可被读取和测试。
只能以十进制数的格式在程序中写。 18(默认值) 状态为 1 时,将鼓形控制器块置 0 步。
前进输入(或指令) U(UP)
输出 F (FULL)
控制位
在上升沿处,使鼓形控制块向前进一步并更新 控制位。 表示当前步等于最后一步。可测试对应位 %DRi.F。 与步(16 位控制位)对应的输出或内部位, 在配置编辑器内加以定义。
33
B
操作
鼓形控制器包括:
8 步(07)16个数据位(每步的状态)组成的常数(凸轮)矩阵,其中数据位被排
放在 0F 个竖列中。
控制位表(每列一个),相应的可以是输出 %Qi.j ,也可以是内部位 %Mi。在当前步中,控
制位以二进制表示该步的状态。  下表概括了鼓形控制器块的主要特性
0 1 2 D E F
控制位 %Q0.1 %Q0.3 %Q1.5 %Q0.6 %Q0.5 %Q1.0
01
0 0 1 1 1 0 1 0 1 1 0 0
567
1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0
在上例中,5 号步是当前步,把控制位 %Q0.1;%Q0.3%Q1.5 置为 1; 把控制位 %Q0.6 %Q0.5%Q1.0 置为 0
在输入 U 的每个上升沿处(或执行指令 U 时),当前步向前进。当前步可由程序修改。 
运行图
输入
输入
步号 输出
U:
R:
%DRi.S %DRi.F
0 1 2 L-1 0 1 2 0 1
特殊情况
冷启动的影响冷启动的影响
冷启动的影响
冷启动的影响冷启动的影响
热启动的影响热启动的影响
热启动的影响
热启动的影响热启动的影响
程序跳转的影响程序跳转的影响
程序跳转的影响
程序跳转的影响程序跳转的影响
更新控制位更新控制位
更新控制位
更新控制位更新控制位
34
(%S0=1) 将鼓形控制器功能块复位为步 0 并刷新控制位。
: :
(%S1=1) 过了当前步后刷新控制位。
:如果没有扫描到鼓形控制器,控制位不会复位为 0。
:只发生在步变化或冷热启动时。
编程和配置
在这个例子中,由输入 %I0.1控制, 每次置 1,前 6 个输出 %Q0.0%Q0.5被依次执行。 输入 %I0.0 将输出复位为 0。
可逆编程
BLK %DR1
F
%Q0.8
( )
LD %I0.0
R LD %I0.1 U
OUT_BLK LD F ST %Q0.8 END_BLK
%I0.0
%I0.1
%DR1
R
U STEPS 6
配置
B
配置时作如下定义:
步数: 6
鼓形控制器每步的输出状态(控制位)
Q 0. 0: 1: 2: 3: 4: 5:
0: 0 0 0 0 0 0
1: 0 1 0 0 0 0
2: 0 0 1 0 0 0
3: 0 0 0 1 0 0
4: 0 0 0 0 1 0
5: 0 0 0 0 0 1
控制位的分配
0:%Q0.0 1:%Q0.1
2:%Q0.2 3:%Q0.3 4:%Q0.4 5:%Q0.5
不可逆编程
LD %I0.0 R %DR1
LD %I0.1 U %DR1 LD %DR1.F ST %Q0.8
35
B
2.3 程序指令集
2.3-1 程序结束指令 END ENDC ENDCN
用指令 ENDENDC 和 ENDCN 来定义程序的结束:
END
无条件程序结束
ENDC ENDCN
在常规扫描模式下,当执行结束指令时,输出刷新,并开始下一个扫描。 如果扫描是周期性的,一个周期结束时输出被刷新,并开始下一个周期。
例如:
如果前一个测试指令的布尔值为 1,则程序结束
如果前一个测试指令的布尔值为 0,则程序结束
%M1
%Q0.1
( )
%M2
%Q0.2
( )
END
LD %M1 ST %Q0.1 LD %M2
ST %Q0.2
…………………
END
%M1
%M2
%Q0.1
( )
%Q0.2
LD %M1 ST %Q0.1 LD %M2
ST %Q0.2
( )
…………………
%10.2
END
%M2
%Q0.2
( )
END
2.3-2 NOP指令
NOP 指令不进行任何操作。它用来在程序中“保留”行,以便用户以后插入指令时无需修改行
号。
LD %I0.2
ENDC
LD %M2 ST %Q0.2
…………………
END
如果%I0.2=1, 结束程序扫描
如果%I0.2=0,继续程 序扫描直至新的 END 指令
36
2.3-3 跳转指令 JMP JMPC JMPCN,跳至标号为 %Li: 的程序行:
指令 JMPJMPC 和 JMPCN 能立即中断执行,转入执行标号为 %Li (i = 015)的程序行。
JMP:无条件程序跳转 JMPC:如果前一个指令的布尔值为 1, 则程序跳转 JMPCN:如果前一个指令的布尔值为 0, 则程序跳转
例如:
000 LD %M15
B
001 JMPC %L8 002 LD [%MW24>%MW12]
如果 %M151 跳转至标号
%L8 003 ST %M15 004 JMP %L12
无条件跳至标号%L12 005 %L8:
006 LD %M12 007 AND %M13 008 ST %M2 009 JMPCN %L12 010 OR %M11
如果 %M20 跳转至标号
%L12 011 S %Q0.0
012 %L12: 013 LD %I0.0
注意:
这类指令不可用于括号内。
标号只能放在指令 LD、LDN、LDR、LDFBLK 之前。
标号 %Li 在程序中只能定义一次。
程序跳转可以向上也可以向下。当向上跳转时,应注意程序的扫描时间。延长扫描时间可能
导致警戒时钟超时而停止 PLC 运行。
37
B
2.3-4 子程序指令 SRn, SRn: RET
SRn 指令调用标号为 SRn:的子程序。如果前一个布尔指令结果为 1 RET 指令放在子程序的最后,用于返回主程序。
子程序的标号为 SRn: =015
例如:
000 LD %M15 001 AND %M5 002 ST %Q0.0 003 LD [%MW24>%MW12] 004 SR8 005 LD %I0.4 006 AND %M13 007 _ 008 _ 009 _ 010 END
011 SR8: 012 LD 1 013 IN %TM0 014 LD %TM0.Q 015 ST %M10 016 RET
………………………………
注意:
一个子程序不可以调用另一个子程序。
这类指令不可用于括号内。
标号只能放在指令 LDBLK 之前,用于标志一个布尔等式或梯级的开始。
可在赋值指令(例如,输出或转移)之后调用子程序。
例如
%I0.0
>> SR0
LD %I0.0 SR0 ST %Q0.0
%Q0.0
( )
LD %I0.0 ST %Q0.0 SR0
38
3 数字指令和特殊指令
3.1 数字处理
3.1-1 字对象定义
字对象是存放在数据存储区中的 16 位字,它们可表示 -3276832767 之间的任何整数
(除了高速计数器是 065535)。
立即数
立即数是指与 16 位字同样格式的整数值,它将值赋于这些字,它们存放在程序内存中,表示
-3276832767 之间的整数值。
字结构
字的内容或值根据下述约定以 16 位二进制码(或补码)的形式存放在用户内存中:
B
F E D C B A 9 8 7 6 5 4 3 2 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1
8
4
2
+
_
4096
8192
16384
2048
1024
512
256
128
64
32
16
1
在带符号的二进制码中,第 15 位用于根据约定标示值的正负:
15 位为 0: 字的值为正。
15 位为 1: 字的值为负(负值用二进制补码逻辑表示)。
字和立即值可以以下形式存储和读取:
十进制 1579 (最大值:32767,最小值:-32768)
十六进制 16#A536 (最大值:16#FFFF,最小值:16#0000)
内部字
内部字用于存放程序运行时产生的值。 它们被存储在数据区中。 字 %MW0%MW511 被用作工作字,可由程 序直接读取或写入。
%MW0
%MW511
位的位置 位的状态 位的值
16 bits
39
B
常量字
常量字是指常数值或者字母和数字报文。
%KW0
16 bits
它们只能由终端(在配置编辑器中)进行写入或修改。 程序对常量字 %KW0 - %KW63 只有读访问权。
I/O I/O 字指输入字%Wi,j 和输出字 %QWi,j 它们用于对等 PLC 之间的数据交换或用来存储模拟量单元的ADDA数据,见节3.5
%KW63
系统字
这类 16 位字有多种功能。读字 %SWi 可以访问直接来自 PLC 的数据,用于在应用程序中实 现具体操作(例如,调节调度模块)。 每个系统字的作用请参见节 6
字的位对象
可以从某些字的 16 位中取出一位,这一位可用冒号隔开,并被加入到字地址中。
语法结构:% 字对象:Xk, 其中 k 表示对象字 015 位中的一位。 例如:%MW5:x6: 内部字 %MW5 中的第 6 位。
字操作数列表
类型 地址(或值) 最大个数 写访问 参考节
立即数
十进制
十六进制
内部字 常量字 系统字 功能块字
I/O
输入字
输出字
字抽取位
 ● 内部  ● 系统  ● 常量  ● 输入  ● 输出
例如: 2103 例如: 16#AF0D
%MWi %KWi %SWi
512 64
128 %TMi.P %Ci.P
%IWi.j 20 %QWi.j
%MWi:Xk %SWi:Xk %KWi:Xk
%IWi.j:Xk
10
512x 16 可以
128 x 16
64 x 16 不可以
20 x 16 %QWi.j:Xk 10 x 16
不可以
可以 不可以 (1) 根据 i
不可以 可以
根据 i
不可以 可以
_ _
5.2
2.2-1
3.3
(1) 常量字应在配置模式中写入。
40
3.1-2 结构化对象
位串
位串是指一系列类型相同的相邻对象位, 并被定义为长度:L 。
位串举例:
%M8 %M9 %M10 %M11 %M12 %M13
%M8:6 (1)
类型 地址 最大范围 写访问
开关量输入位 %I0:L %I1:L 0<L<17 不可以 开关量输出位 %Q0:L %Q1:L 0<L<17 可以 系统位 %Si:L 0<L<17 i+L-128 根据 i i 8 的倍数 内部位 %Mi:L 0<L<17 i+L-128 可以 i 8 的倍数
B
位串可被用于赋值指令 := (见赋值指令,节 3.1-4)。
字表
字表是指一系列类型相同且相邻的字,被定义长度为:L。
字表举例:
%KW10
%KW10:7
%KW16
类型 地址 最大范围 写访问
内部字 %MWi:L 0<L<512 i+L-512 可以 常量字 %KWi:L 0<L i+L-64 不可以
系统字 %SWi:L 0<L i+L-128 根据 i
字表可被用于赋值指令 := (见赋值指令,节 3.1-4)。
(1) %M8:6 可以,因为 8 是 8 的倍数; %M10:16不可以,因为 10 不是 8 的倍数。
16 bits
41
B
索引字
直接寻址
如果一个对象的地址是在编写程序时定义的并且固定不变,那么该对象的地址被称为直接地址。
例如:%M26 (地址为 26 的内部位)
间接寻址
在间接寻址时,在一个对象的直接地址中加入索引:把索引值加入对象地址。索引由内部字 %MWi 定义。“索引字”的数量不限。
例如:%MW108[%MW2] 的地址为字的直接地址 108 + %MW2 的值。
如果字 %MW2 的值为 12,则 %MW108[%MW2] 等效与 %MW120
类型 地址 最大范围 写访问
内部字 %MWi[%MWj] 0-i+%MWj<512 可以 常量字 %KWi[%MWj] 0-i+%MWj<64 不可以
索引字可用于赋值指令 := (见赋值指令,节 3.1-4),也可用于比较指令(见比较指令,节 3.1- 5)。 这种寻址方式允许在程序中调整索引字的值,从而能够连续扫描相同类型的一系列对象(内部字, 常量字等)。
索引溢出,系统位 %S20
如果一个索引对象的地址超出了同类型对象内存区的范围,就称为索引溢出。以下情况会发生索 引溢出:
对象地址 + 索引值 小于 0
对象地址 + 索引值 大于512(对字 %MWi 而言)或者 63(对字 %KWi 而言)。
如果发生索引溢出,系统将系统位 %S20 置为 1,对象将索引值置为 0。
注意:用户应该监视任何溢出:在处理过程中用户程序应读取位 %S20,以保证它被复位为 0
%S20 (初始状态为 0):
发生索引溢出: 由系统置为 1。
确认索引溢出:在修改了索引之后,由用户置为 0
42
3.1-3 数字指令说明
数字指令一般用于 16 位字(见节3.1-1),并写在方括号内。若前一个逻辑运算值为真(布尔 累加器 = 1),则执行数字指令。若前一个逻辑运算值为假(布尔累加器 = 0),则不执行数字 指令且操作数保持不变。
3.1-4 赋值指令
用于把操作数 Op2 装入操作数 Op1
语法: [Op1:=Op2] <=> Op2->Op1
可对下列对象执行赋值操作:
位串
字表
B
位串赋值(见节3.1-2 中的位串对象)
可用于位串的赋值操作: 位串 -> 位串 (例 1) 位串 -> 字 (例 2) 字 -> 位串 (例 3) 立即值 -> 位串 
例如
%Q0:8:=%M64:12
%I0.2
%MW100:=%I0:16
%I0.3
P
%M104:16:=%KW0
LD 1 [%Q0:8:=%M64:12] (1)
LD %I0.2 [%MW100:= %I0:16] (2)
LD %I0.3
[%M104:16:= %KW0] (例2)
使用规则
对于位串 -> 字赋值:位串中的位从右开始传送到字(位串的第一位送到字的第 0 位),并
把字中没有被传送的位都置为 0(长度 <16)。
对于字 -> 位串赋值:字中的位从右起开始传送(字的第 0 位关联位串的第一位)。
43
B
语法
操作 语法 操作数 1 (Op1) 操作数 2 (Op2)
:= [Op1: = Op2 ] %MWi,%QWi, %SWi 立即值, %MWi, %MWi[MWi], %KWi,%IW,%QW,%SWi,
 把操作数 2 的值 %Mi:L,%Qi:L,%Si:L %BLK.x,%MWi[MWi],  赋给操作数 1 KWi[MWi], %Mi:L,%Qi:L,
%Si:L,%Ii:L,
注意:缩写 %BLK.x (例如 %C0.P )可用来表示任意功能块字。
字赋值
可用于字的赋值操作: 字 -> 字 (例 1) 字 -> 索引字 索引字 -> 字 索引字 -> 索引字 (例 2) 立即值 -> 字 (例 3) 立即值 -> 索引字 位串 -> 字 字 -> 位串
例如:
LD 1 [%SW112:= %MW100] (1)
LD %I0.2 [%MW0[%MW10] := %KW0[%MW20]] (2)
LD %I0.3
[%MW10:= 100] (3)
%I0.2
%I0.3
P
%SW112:=%MW100
%MW0[%MW10]:=%KW0[MW20]
%M10:=100
语法
操作 语法 操作数 1 (Op1) 操作数 2 (Op2)
:= [Op1: = Op2 ] %MWi,%QWi, %SWi 立即数, %MWi,
%MWi[MWi], %KWi,%IW,%QW,%SWi,
把操作数 2 的值 %Mi:L,%Qi:L,%Si:L, %BLK.x,%MWi[MWi], 赋给操作数 1 %KWi[MWi], %Mi:L,%QiL,
%Si:L,%Ii:L,
注意:
缩写 %BLK.x (例如 R3.I)可用来表示任意功能块字。
对于位串 %Mi:L, %Si:L 和位串的第一个基地址应是 8 的倍数 (0, 8, 16, ..., 96, ...)
44
字表赋值(见节 3.1-2 中的字表对象)
可用于字表的赋值操作: 立即值 -> 字表 (例 1) 字 -> 字表 (例 2) 字表 -> 字表 (例 3)
例如
 
%MW0:10:=100
B
LD 1
[%MW0:10:= 100] (1)
%I0.2
%I0.3
P
%MW0:10:=%MW11
%MW10:20=%KW30:20
LD %I0.2 [%MW0:10:=%MW11] (2)
LD %I0.3 [%MW10:20= %KW30:20] (3)
语法
操作 语法 操作数 1 (Op1) 操作数 2 (Op2)
:= [Op1: = Op2 ] %MWi:L,%SWi:L %MWi,%KWi:L %SWi:L
 把操作数 2 的值 立即数,%MWi,%KWi,%IW,  赋给操作数 1 %QW,%SWi,%BLK.x
45
B
3.1-5 比较指令
比较指令用于比较两个操作数。
> : 测试操作数 1 是否大于操作数 2 >= : 测试数 1 是否大于或等于操作数 2。 < : 测试操作数 1 是否小于操作数 2 <= : 测试操作数 1 是否小于或等于操作数 2 = : 测试操作数 1 是否等于操作数 2 <> : 测试操作数 1 是否不等于操作数 2
结构
比较指令要加方括号,跟在指令 LDAND OR 的后面。当比较结果为真时,值为 1
LD [%MW10 > 100] ST %Q0.3 LD %M0 AND [%MW20 < %KW35] ST %Q0.2 LD %I0.2 OR [%MW30 >= %MW40] ST %Q0.4
%MW10>100
%M0
%I0.2
%MW30
%MW20<%KW35
>= >=
>= %MW40
>= >=
%Q0.3
( )
%Q0.2
( )
%Q0.4
( )
语法
操作 语法 操作数 1 (Op1) 操作数 2 (Op2)
>,>=,<,<= LD [Op1运算符 Op2] %MWi:L,%KWi,%IW, 立即数, %MWi,%KWi, =,<> AND[Op1运算符 Op2] %QWi,%SWi,%BLK.x %IW,%QW,%SWi,%BLK.x, OR[Op1运算符 Op2] %MWi[%MWi],
%KWi[%MWi]
注意:
比较指令可以放在圆括号内。
例如:
LD %M0 AND( [%MW20>10] OR %I0.0 ) ST %Q0.1
46
3.1-6 算术指令
这类指令用于两个操作数之间或一个操作数上的算术运算。
+
-
*
/
: 两个操作数相加 REM : 两个操作数相减 : 两个操作数相乘
: 两个操作数相除
SQRT INC
DEC
: 两个操作数相除的余数 : 一个操作数的平方根 : 一个操作数递增
: 一个操作数递减
结构
算术操作如下表示:
B
%M0
%I0.2
%I0.3
P
%MW0:=%MW10+100
%MW0:=SQRT(%MW10)
INC %MW100
LD %MW0 [%MW0:= %MW10+100]
LD %I0.2
[%MW0:= SQRT(%MW10)]
LDR %I0.3
[INC %MW100]
语法:
取决于使用的运算符: 见下表。
操作 语法 操作数 1 (Op1) 操作数 2 (Op2) +,-,*,/,REM [Op1: =Op2运算符Op3] %MWi,%QWi,%SWi, 立即数(1),%MWi,%KWi
SQRT [Op1: =SQRT(Op2)] %IW,%QW,%SWi,%BLK.x INC,DEC [运算符 Op1]
使用规则
加法: 运算时溢出
如果结果超出 -32768 +32767,位 %S18(溢出位)置为 1,且所得结果不正确(见下页)。 可由用户程序控制 %S18
例如:
%M0
%MW0:=%MW1+%MW2
%S18
/
%S18
%MW10:= %MW0
%MW10:= 32767
%S18
(R)
如果 %MW1 =23241 %MW2=21853,实际结果 (45094) 不能由 16 位字显示, 位 %S18 被 置为 1 ,并且得出错误结果 (-20442)。在该例中,当结果值大于 32767 时,都取为 32767
(1) SQRT 中,操作数不能是立即值。
LD %M0 [%MW0:= %MW1+%MW2] LDN %S18 [%MW10:= %MW0] LD %S18 [%MW10 := 32767] R %S18
47
B
结果绝对溢出(无符号运算):
在某些运算中可能会用到无符号操作数(此时第 15 位表示值 32768)。无符号操作数的最大值 为 65535。若两个绝对值相加的和超过 65535,那么结果溢出。该情况由位 %S17 作为标记。 当结果为 65536 时,%S17 变为 1。
1: [%MW2:=%MW0 + %MW1] 其中 %MW0 =65086, %MW1=65333
%MW2 的值为 64883。位 %S17 置为 1,表示值 65536。无符号运算结果等于: 65536 + 64883 = 130419
2: [%MW2:=%MW0 + %MW1] 其中 %MW0 =45736(等于带符号值 -19800),%MW1=38336
(等于带符号值 27200)。
系统位 %S17 %S18 被置为 1。带符号运算的结果 (+18536) 是错误的。无符号运算的结果
18536 + %S17的值,等于 84072)是正确的。
减法: 负值 如果减法的结果小于 0,系统位 %S17 置为 1。
乘法: 运算时溢出 如果结果超出字的范围,位 %S18(溢出)置为 1,且结果无意义。
除法/取余: 0 除 如果除数为 0,则不能运算,而且系统位 %S18 置为 1,结果出错。 运算时溢出 如果商超出字范围,位 %S18 置为 1。
平方根开方: 只有正数才能进行平方根开方,所以通常结果为正。如果操作数为负,系统字 %S18 置为 1, 结果出错。
注意: 用户程序可以控制系统字 %S17 %S18。如果它们被 PLC 置为 1,则程序应将它们复位, 以便再次使用(见上页举例)。
48
3.1-7 逻辑指令
这些指令用于两个操作数之间或对于一个操作数进行逻辑运算。
AND: 与 用于两个操作数之间 OR : 逻辑或 用于两个操作数之间 XOR: 异或 用于两个操作数之间 NOT: 逻辑反 用于一个操作数
结构
逻辑运算表示如下:
B
%M0
%MW0:=%MW10 AND 16#FF00
%MW0:=%KW5 OR %MW10
%I0.3
%MW102:=NOT(%MW100)
LD %M0 [%MW0:= %MW10 AND 16#FF00]
LD 1
[%MW0:= %KW5 OR %MW10]
LD %I0.3
[%MW102:=NOT (%MW100)]
语法
取决于使用的运算符:见下表。
操作 语法 操作数 1 (Op1) 操作数 2 (Op2 & Op3) AND,OR,XOR [Op1: =Op2运算符Op3] %MWi,%QWi,%SWi, 立即数(1),%MWi,%KWi
NOT [NOT (Op2)] %IW,%QW,%SWi,%BLK.x
例如:[%MW15:=%MW32 AND %MW12]
(1) NOT 指令中,Op2 不可以是立即值。
49
B
3.1-8 移位指令
移位指令可以把操作数的位向左或向右移动若干位。 有两类操作指令:
F
0
逻辑移位:
- SHL(op2,i) 向左逻辑移动 i
%S17
F
%S17
结构
逻辑运算表示如下:
%I0.1
P
%MW0:=SHL(%MW10,5)
0
0
%S17
%S17
- SHR(op2,i) 向右逻辑移动 i 位
循环移位:
- ROL(op2,i) 向左循环移动 i 位
- ROR(op2,i) 向右循环移动 i 位
如果操作数时单字长的,则 i 的范围是 1 16。 最后输出位的状态被存在位 %S17中。
LDR %I0.1 [%MW0 := SHL(%MW10,5]
%I0.2
P
%MW10:=ROR(%KW9,8)
LDR %I0.2
[%MW10 :=ROR (%KW9,8)]
语法
取决于使用的运算符:见下表。
操作 语法 操作数 1 (Op1) 操作数 2 (Op2) SHL,SHR, [Op1: =运算符(Op2,i)] %MWi,%QWi,%SWi, %MWi,%KWi,
ROL,ROR %IW ,%QW ,%SWi,%BLK.x
50
3.1-9 转换指令
有两种类型的转换指令:
BTI: BCD--> 二进制 转换
ITB: 二进制 --> BCD 转换
BCD 码介绍
BCD 码用四位二进制码表示一个十进制数(0 到 9)。一 个 16 位字可用 4 个十进制数表示
0 9999)。
在转换中,如果值不是 BCD 码,则位 %S18 置为 1。可在用户程序中测试该位并将其复 位为 0
十进制数 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
例如:
%MW5 BCD 的表示为“2450”,相应的二进制码为: 0010 0100 0101 0000
%MW12 用十进制表示为:“2450”,相应的二进制码为: 0000 1001 1001 0010
B
用指令 BTI 把字 %MW5 转换成 %MW12。 用指令 ITB 把字 %MW12 转换成 %MW5
结构
转换运算表示如下:
LD %M0
%MW0:=BTI(%MW10)
%I0.2
%MW10:=ITB(%KW9)
[%MW0 := BTI (%MW10)]
LD %I0.2
[%MW10 :=ITB (%KW9)]
语法
取决于使用的运算符:见下表。
操作 语法 操作数 1 (Op1) 操作数 2 (Op2) BIT,ITB, [Op1: =运算符(Op2)] %MWi,%QWi,%SWi, %MWi,%KWi,%IW,%QW,
%SWi,%BLK.x
应用举例
BTI 指令用来处理旋转编码的 BCD 码在 PLC 输入的设定值。 ITB 指令用 BCD 码的数字值(例如,计算结果,功能块的当前值)。
51
B
3.2 专用功能块
3.2-1 与专用功能块相关的字和位对象
专用功能块使用和标准功能块类型相同的专用字和位(见节 2.2)。
程序可访问的功能块位和字对象
专用功能块 相关字和位 地址 写访问 参考节
脉冲宽度调制输出 字 占空比 %PWM.R 可以 3.2-3 %PWN 预设周期 %PWM.P 不可以 脉冲发生器 字 预设值 %PLS.P 可以 3.2-4 %PLS 产生的脉冲数 %PLS.N 可以
 位 当前输出 %PLS.Q 不可以  完成输出 %PLS.D 不可以 高速计数器 字 阈值 i %FC.Si 可以 3.2-5
%FC
 当前值 %FC.V 不可以  预设值 %FC.P 可以  位 溢出 %FC.F 不可以  超时阈值 i 输出 %FC.THi 不可以 发送报文 位 错误命令输出 %MSG.E 不可以 3.2-6  命令完成输出 %MSG.D 不可以
%MSG
移位寄存器 位 寄存器位j=0~15 %SBRi.j 可以 3.2-7 步进计数器 位 步进计数器位j=0~255 %SCi.j 不可以 3.2-8
%SBRi (i=07)
%SCi (i=07)
3.2-2 编程原则
与标准功能块相同,特殊功能块可有两种编程方法:
不可逆编程:使用特殊指令
可逆编程:仿照梯形图语言功能块 见节 2.2-2
52
3.2-3 脉冲宽度调制输出 % PWM
B
%PWM
IN
BT %PWM.P
%PWM 功能块
%PWM 功能块用于在 PLC 输出 %Q0.0 上生成一个方波信号。 信号宽度(导通周期)可由程序改变。
Tp
T
可编程脉宽 可配置的固定周期
特性
时基 TB 0.1 毫秒 (1), 10 毫秒, 1 秒(默认值) 预设周期 %PWM.P 0<%PWM.P-32767 如果时基为 10 毫秒或 1 秒 0<%PWM.P-255 如果时基为 0.1 毫秒  (0= 功能块未被使用)  预设值和时基可在配置时进行修改。它们用于确定信号周期 T = %PWM.P x TB。  频率越低,所选的 %PWM.P 值应越大。  所得周期的范围:
 ● 时基为 0.1 毫秒时,0.2 26 毫秒  ● 时基为 10 毫秒时,20 毫秒到 5.45  ● 时基为 1 秒时,2 秒到9.1 个小时
占空比 %PWM.R 0-%PWM.R-100 (2),这个字表示状态 1 在信号周期中所占 的比例(0 = 默认值)。  因此,脉宽 Tp 等于:Tp = Tx (%PWM.R/100)  字 %PWM.R 由用户程序写入,用于进行脉宽调制。 脉冲发生输入 IN 状态为 1 时,脉冲宽度调制信号由输出 %Q0.0。
(或指令) 状态为 0 时,输出 %Q0.0 置为 0。
(1) 该时基只适用于带晶体管输出的 TSX Neza PLC (2) 如果值大于 100 则看作等于 100
53
B
操作
输出信号 %Q0.0 的频率在配置时通过选择时基 TB 和预设 %PWM.P 来设置。信号的带宽通过 改变程序中的 %PWM.R 比例来调节。
输入 IN
80% 50%
比例 %PWM.R 输出 %Q0.0
20%
编程和配置
在这个例子中,信号的带宽由程序根据 PLC 输入 %I0.0 %I0.1 的状态进行修改。在配置时 把信号的周期设为 500 毫秒。(见下面配置记录) 如果 %I0.0 %I0.1 都设为 0,%PWM.R 比例设为 20%,则状态 1 的持续时间为:20% x 500 毫秒 = 100 毫秒。 如果 %I0.0 设为 0,%I0.1 设为 1,%PWM.R 比例设为 50%,则持续时间为 250毫秒。 如果 %I0.0 %I0.1 都设为 1%PWM.R 比例设为 80%,则持续时间为 400 毫秒。
%I0.0
%I0.0
%I0.0
%I0.2
%I0.1
%PWM.R:=20
%I0.1
%PWM.R:=50
%I0.1
%PWM.R:=80
%PMW
IN
LD %I0.0 ANDN %I0.1
[%PWM.R:=20]
LD %I0.0 ANDN %I0.1
[%PWM.R:=50]
LD %I0.0 AND %I0.1
[%PWM.R:=80]
BLK %PWM LD %I0.2
IN
END_BLK
配置
输出 %Q0.0 = 输出 %PWM TB = 10毫秒 %PWM.P=50
特殊情况
冷启动的影响:(%S0=1) 设 %PWM.R 比例为 0
热启动的影响:(%S1=1) 无影响
PLC 停止的影响:
不论系统位 %S8 的状态如何,输出 %Q0.0 设为 0。
时基为 0.1 毫秒,通过编程设备强置输出 %Q0.0 不会中止信号的生成。
54
3.2-4 脉冲发生器输出 % PLS
B
%PLS
%PLS 功能块在 PLC 输出 %Q0.0 上生成一个方波信号。 (50%的占空比)
IN
R
%PLS
BT %PLS.P Adjust
功能块功能块
功能块
功能块功能块
F
D
该信号可以:
限制长度,由程序(或配置时)确定脉冲的个数及周
期。
不限制长度,由程序(或配置时)确定脉冲的周期。
TT
T
TT
可变周期
特性
时基 TB 0.1 毫秒 (1), 10 毫秒, 1 秒(默认值) 预设值 %PLS.P 0<%PLS.P<32767 如果时基为 10 毫秒或 1 秒  0<%PLS.P<255 如果时基为 0.1 毫秒 (1)(2) 预设值用于修改信号周期 T = %PWM.PxTB。  所得周期的范围:     注意:%PLS.P 必须是个偶数 脉冲个数 %PLS.N 0<%PLS.N<32767,这个字表示要生成的脉冲列中脉冲的个
数。0 = 无限长方波信号(默认值)。 %PLS.N由程序测试和写入。 根据编程终端调整 Y/N Y:可以在数据编辑器中修改预设值 %PLS.P.N N:不可访问数据编辑器,无法修改
脉冲发生输入 IN 状态为 1 时,输出 %Q0.0 处生成信号。
(或指令) 状态为 0 时,输出 %Q0.0 置为 0
复位输入 R 状态为 1 时,把输出 %PLS.Q %PLS.D 的脉冲数复位为 0
(或指令)
当前脉冲 %PLS.Q 状态为1,在 %Q0.0 处生成脉冲信号。 生成输出 脉冲生成 %PLS.D 状态为 1,脉冲输出已经完成。 完成输出 PLS 计数器 (2) N=否, Y=是 该选项允许输入 %I0.0 被用作计数输入。
时基为 0.1 毫秒时,0.2 26 毫秒
时基为 10 毫秒时,20 毫秒到 5.45 分钟
时基为 1 秒时,2 秒到 9.1 个小时
(1) 该时基只适用于带晶体管输出的 TSX Neza PLC (2) 当时基为 0.1 毫秒时需选择 PLS 计数器选项。为了使 PLS 正常工作,必须在物理上把输出 %Q0.0 和输入 %I0.0 连接起来。在这类操作中,%PLS.P 必须大于或等于 6(最大频率为 1.6 KHz),以保证功能块的正常运行。
55
B
操作
输入 IN
脉冲个数 输出 %Q0.0
输出 %PLS.Q 输出 %PLS.D
特殊情况
·冷启动的影响:(%S0=1) %PLS.P 的值设为配置时定义的值
·热启动的影响:(%S1=1) 无影响
·PLC 停止的影响:见节 3.2-3 中的PLC 停止的影响
·改变 %PLS.P 预设值的影响:通过指令修改 %PLS.P 的预设值或对它进行调整会立即产生
影响。
·时基为 0.1 毫秒,强制输入 %QI0.0 不会中止信号的生成。
注释:
使用 0.1 毫秒的时基可能造成要求脉冲个数 %PLS.N 与实际脉冲个数相差一个脉冲。为 了避免这种情况,当一次脉冲生成完成后必须复位功能块。
LD %Mi IN %PLS N R %PLS 然而,一旦输入 IN 变为 1,那么将会重新开始生成 %PLS.N 个脉冲。
56
3.2-5 高速计数功能块,频率计和加/减计数器 %FC
B
%FC
%FC 功能块可用于执行以下三个功能: 高速计数
IN
%FC.P %FC.S0 %FC.S1
S
%FC 功能块
F
TH0 TH1
频率计 加/减计数
(详见 A 部分,节 4.4)在配置时选择功能。
注意:可不通过编程而是直接配置 I/O 和参数来执行高速计数功 能。  
功能块 %FC 的特性
该功能块提供一组字和一些用于生成三种功能的输入输出位。要充分了解每个对象在功能块中的 作用,请参考功能块的详细介绍。 当前值
预设值
阈值 S0 (1)  阈值 S1 (1)  输入使能
(或指令)
设置输入
(或指令)
  溢出  阈值 位 0 (2) 阈值 位 1 (2)
(1) 阈值 %FC.S0 应小于阈值 %FC.S1 (2) 程序中只能测试一次 %FC.THx位。
%FC.V 根据所选输入及功能增加或减少
可被读取和测试,但不可写入
%FC.P
只供加/减计数器功能使用0-%FC.P-65535 字可被读取、测试和写入
%FC.S0
0-%FC.S0-65535 字表示配置时阈值 0 的值 可由程序读取和写入
%FC.S1 0-%FC.S1-65535 字表示配置时阈值 1 的值
可由程序读取和写入
IN
状态为 1,激活当前功能 状态为 0,停止当前功能
S
%FC.F
状态为 1:
把当前值设为预设值(加/减计数器)或将当前值复位为 0
初始化阈值输出操作 (HSC_Out)
考虑用程序修改阈值 %FC.S0 %FC.S1
%FC.V 的值超过 65535,则状态为 1。 可用预设值刷新(%I0.1 S 指令)或者冷启动。
%FC.TH0 %FC.TH1
若当前值大于或等于阈值 %FC.S0,则状态为 1。 若当前值大于位 1 (2) 或等于阈值 %FC.S1,则状态为 1
57
B
高速计数功能
高速计数器在高速模式下最高频率可达 10 kHz (正常模式下为 5 kHz,可在配置时选择),范 围为 1- 65535。 计数器对 PLC 输入 %I0.0 的信号进行计数。计数值(当前值 %FC.V)和预设的两个阈值 %FC.S0 %FC.S1 作比较,这两个阈值在配置时定义并可由程序修改(修改时设置输入被 激活)。 
图表:
高速计数器
计数输入
输入使能 设置输入
(预设为 0)
指令 [READ %FC.V] 阈值 0
阈值 1
使能
%SW111:X1
%I0.0
%I0.2
IN %FC
%I0.1
S %FC
%FC.S0 %FC.S1
≥1≥1
≥1
≥1≥1
≥1≥1
≥1
≥1≥1
&
计数器
当前值
比较
&
&
%FC.F %FC.V
%FC.TH0 %FC.TH1
%Q0.1
%Q0.2
满溢输出 当前值
阈值位 0 阈值位 1
阈值输出 0
阈值输出 1
注释:除了计数输入 %I0.0 外,所有其它功能块的预设 I/O 都可选(可在配置时选择)。它们
每个都有等效的编程对象和指令(上图中由方框标出)。
阈值输出:阈值输出直接由高速计数器根据用户配置时所设值来控制(不用等到扫描结束时
更新输出)。
输出 FC.V<FC.S0<FC.S1 FC.S0-FC.V-FC.S1 FC.S0<FC.S1<FC.V
%Q0.1 0 1 0 1 01 %Q0.2 0 1 0 1 0 1
阈值输出初始化后,必须由高速计数器的预设命令来启动。 编程举例:
BLK %FC LD %S0 S END_BLK LD %S0 S %SW111:X1 (%SW111:X1设置为1)
58
%S0
%S0
%FC IN S
%SW111:X1
(S)
读取当前值
当前值 %FC.V 在每次 PLC 扫描结束处更新。%FC.V 也可由指令 READ 更新: 语法:[READ %FC.V] 时序图
计数器输入(%I0.0)
65535
阈值1 %FC.S1 阈值0 %FC.S0
当前值 %FC.V
输入使能 IN%I0.2 (1)
B
设置输入 S%I0.1 (1)
满溢
%FC.F 阈值位0
%FC.TH0 阈值位1
%FC.TH1 阈值输出0
%Q0.1 (2) 阈值输出1
%Q0.2 (2)
(1)当设置输入 S 动作时,输入 %I0.1 上升沿有效(见时序图) (2)在此时序图中,状态如下表所示:
输出 FC.V<FC.S0<FC.S1 FC.S0-FC.V-FC.S1 FC.S0<FC.S1<FC.V %Q0.1 0 1 0 %Q0.2 1 0 0
59
B
频率计功能
频率计用来测试输入%I0.0 上的单位为 Hz 的周期信号频率。有两种模式:高速模式(10kHz 滤波)和正常模式(5kHz滤波)。
频率测试范围从1Hz 到 10kHz。用户可通过系统位%SW111:X2在两个时基中选择一个。 (1 表示 100毫秒的时基,0 表示 1秒的时基)。
时基
100毫秒
测试范围
100Hz-10kHz
测试范围
10kHz0.1%
更新 每秒10
100Hz10%
1
10Hz-10kHz
10kHz0.01%
每秒 1
10Hz 10%
每次当前值更新系统位%SW111:X3都置1。用户程序必须将系统位复位为 0
频率计
图形 计数器输入
%I0.0
&
计数器
输入使能(1)
设置输入
(当前值为 0)
选择时基
%I0.2
IN %FC
S %FC
%SW111:X2
≥1
当前值
%FC.F %FC.V %SW111:X3
满溢输出 当前值 (2) 更新
(1) 输入 %I0.2 可选,可在配置时选择。 (2) 当前值 FC.V 的单位为Hz
时序图
计数器输入(%I0.0) 输入使能(IN或%I0.2)
设置输入(S)
时基TB 当前值%FC.V
100
1s
ms
F1 F2 F3
60
频率计功能
频率计用来测试输入%I0.0 上的单位为 Hz 的周期信号频率。有两种模式:高速模式(10kHz 滤波)和正常模式(5kHz滤波)。
频率测试范围从1Hz 到 10kHz。用户可通过系统位%SW111:X2 在两个时基中选择一个。 (1 表示 100毫秒的时基,0 表示 1秒的时基)。
B
时基
100毫秒
测试范围
100Hz-10kHz
测试范围
10kHz0.1%
更新 每秒10
100Hz10%
1
10Hz-10kHz
10kHz0.01%
每秒 1
10Hz 10%
每次当前值更新系统位%SW111:X3 都置 1。用户程序必须将系统位复位为 0
频率计
图形 计数器输入
%I0.0
&
计数器
输入使能(1)
设置输入
(当前值为 0)
选择时基
%I0.2
IN %FC
S %FC
%SW111:X2
≥1
当前值
%FC.F %FC.V %SW111:X3
满溢输出 当前值 (2) 更新
(1) 输入 %I0.2 可选,可在配置时选择。 (2) 当前值 FC.V 的单位为Hz
时序图
计数器输入(%I0.0) 输入使能(IN或%I0.2)
设置输入(S)
时基TB 当前值%FC.V
100
1s
ms
F1 F2 F3
61
B
加计数器输入 %I0.0 减计数器输入 %I0.3
65535
阈值 1 %FC.S1 阈值 0 %FC.S0
预设值 %FC.P 当前值 %FC.V
输入使能 IN %I0.2
设置输入 S %I0.1 (1)
计数方向
%SW111:X0
满溢
%FC.F (2)
阈值位 0 %FC.TH0
阈值位 1 %FC.TH1
阈值输出 %Q0.1 (3) 阈值输出 %Q0.2 (3)
(1) 输入 %I0.1 为上升沿。 (2) 计数器初始化后,满溢输出 %FC.F 复位为 0 (3) 参考高速计数器的状态矩阵。
要点:
如果位于上升或下降沿的 4 个输入%I0.0、%I0.1、%I0.3 和 %I0.4 中的 1 个状态为 1, 则其 他 3个输入不执行。
62
特殊情况(高速计数器,频率计和加/减计数器)
冷启动的影响:(%S0=1) 改变当前值,改变输出 %FC.F,%FC.TH0,%FC.TH1,把阈值
输出 (%SW111:X1) 位设为 0,并把配置值复制到字 %FC.P 和 %FC.S0/S1。
热启动的影响:(%S1=1) 和 PLC 中止:对当前值无影响。
B
63
B
高速计数功能举例 应用介绍
T
T1
合格
光电传感器
次品
M
A-
V
A+
T2
启动
零件被放在传输带上依次进行测试,传输带由马达带动,而马达和一个增量型旋转编码器连接。 通过对移动零件在单位时间内产生的脉冲数计算来进行测试。圆柱体 V 控制皮带 T 的运动,根 据测试结果决定 T 应位于 T1 还是 T2。 测试到的脉冲数与两个极限值比较(长度测量公差)。
如果位于两值之间,则零件传向“合格”
(传输带T1,控制圆柱体 V A+
如果不是,则零件传向“次品”(传输带
T2,控制圆柱体 V A-)
脉冲
一个零件符合的脉冲数:10000个
(“启动”按钮用于启动整个操作。)
I/O 赋值表
输入
%I0.0 计数器输入(连接增量型编码器)
%I0.1 对应光电传感器的复位输入
%I0.2 输入使能对应“启动”按钮
输出
%Q0.1 圆柱体 A+ 控制输出
%Q0.2 圆柱体 A- 控制输出
%Q0.0 皮带控制输出
64
应用处理
高速计数功能可以无需 PLC 编程,直接由功能块 %FC 配置得到。 %FC :计数器
模式 :高速 计数输入 : %I0.0 设置 : %I0.1 输入使能 : %I0.2
%FC.S0 : 9950 阈值 0 对应最小容许值 %FC.S1 : 10000 阈值 1 对应最大容许值
输出矩阵
输出 FC.V<FC.S0<FC.S1 FC.S0<FC.V<FC.S1 FC.S0<FC.S1<FC.V %Q0.1 0 1 0 %Q0.2 1 0 1
LD %I0.2
%I0.2
%I0.1
N
%I0.1
P
%Q0.0
( )
%SW111:X1
S
( )
%SW111:X1
( )
R
ST %Q0.0 LDF %I0.1 S %SW111:X1 LDR %I0.1 ORN %I0.2 R %SW111:X1
B
%I0.2
操作
输出使能 %I0.2(启动钮)被激活,输入 %I0.0 立刻记录增量编码器生成的脉冲数。在输入 %I0. 1 的上升沿,计数器当前值复位为 0。当光电传感器(输入 %I0.1)发现传输带上没有零件时,
输出 %Q0.1 %Q0.2 被激活(通过位 %SW111:X1),并根据计数器 %FC.V 的当前值(由 输出矩阵而得)置为 0 1。 当零件在容许范围内,输出 %Q0.1 置为 1。由它控制传输带 T1 上圆柱体 A 的位置输出(见 输出矩阵)。 当零件超出容许范围时(圆柱体 A 返回传输带 T2),输出 %Q0.2 置为 1。
65
B
3.2-6
发送/接收报文和控制数据交换
TSX Neza 可以和一个编程终端进行通信(掌上电脑编程器或 PL707 WIN软件)也可以和 TER 终端口上连接的其他 UNI-TELWAY 设备进行通信。TSX Neza 还可以在特性模式(ASCII 通讯 方式)下配置为发送和/或接收报文。
PL707WIN 语言提供:
● EXCH 指令来发送/接收报文, ● %MSG 功能块来控制数据交换。
TSX Neza 根据电缆的旋转拨码开关来决定协议,并把该信息提供给系统位 %S100/DPT 管 理)。 关于 UNI-TELWAY 的兼容产品及配置可参见通讯部分。
EXCH 指令
SEND 指令允许 TSX Neza 从/向 UNI-TELWAY ASCII 设备发送/接收信息。用户建立一个 字表(%MWi:L 或 %KWi:L),其中包括要发送和/或接收的数据(最多可达 64 个数据字)。每 种协议(ASCII UNITELWAY)都有自己的字表格式。 可用 EXCH 指令进行信息交换。
语法:[EXCH %MWi:L] (1) [EXCH %KWi:L]
注意:某些支持 UNI-TELWAY 协议的设备如 XBT 或 CCX 人机界面,可以无需特别编程就可 TSX Neza 发送或接收信息。TSX Neza 发送或接受信息。TSX Neza 必须在完成第一条 EXCH 指令后,才能继续执行第二条。当发送几条指令时,必须使用%MSG 功能块。
(1) L:字表中的个数。 内部字表 %MWi:L 的值应如i+L<=512。
66
%MSG 功能块
%MSG 功能块是可选的;它可以用来控制数据交换。%MSG 功能块有三个用途:
通信错误校验 错误校验用于校验 EXCH 指令确定的块长度(字表)是否足够装入要发送的信息(与字表中第 1 个字的低位有效字节的 长度相比 )。 它也用于校验一条 UNI-TELWAY 信息是否被 UNI-TELWAY 设备接收到。
多条报文协调 在发送多条报文时 %MSG 功能块提供有关前一条报文是否完成的信息,以保证多条报文发送时 不发生冲突。
优先报文传送 %MSG 功能块允许暂停当前报文的传送,以立即发送紧急报文。
数据交换控制块
%MSG功能块用于控制数据交换。
%MSG
它在编程中可选。
B
R
D
E
%MSG
功能块功能块
功能块
功能块功能块
%MSG 块的特性
输入复位 R 状态为 1 时,通信重新初始化,
(或指令) %MSG.E = 0 和 %MSG.D = 1
命令完成 %MSG.D 状态为 1,表示命令完成,在下列情况下: 输出    状态为 0,请求处理 故障(出错) %MSG.E 状态为 1,如果发生下列情况: 输出
   状态为 0,报文长度,连接情况等都正常 当使用 EXCH 指令时发生错误,位 %MSG.D 和 %MSG.E 都会变为 1,且会在系统字 %SW69 内写入错误编码。见节5.2-2。
发送成功则完成发送 完成接收(末尾字符接受) 出错 功能块复位
错误命令 不正确的配置表 接收到错误字符(通信速率,奇偶等错误) 接收表已满(未更新)
67
B
输入复位 (R):当输入复位为 1 时,它会立即中止任何正在发送的报文,把故障(Error)输出复 位为 0 并把完成位置为 1。这样就可以发送一条新报文。 故障 (Error) 输出 (%MSG.E):当发生通信编程错误或报文传送错误时,故障输出置为 1。如果
与 EXCH 指令(字 1,低位有效字节)对应的数据块中定义的字节数超过了 128(十六进制中 的 80),则故障输出置为 1。
当发送一条 UNI-TELWAY 报文给 UNI-TELWAY 设备出现问题时,故障输出置为 1。在该情况 下,用户应检查连线是否正确,目的设备是否支持 UNI-TELWAY 通信。 通信完成输出 (%MSG.D):当完成输出为 1 时,TSX Neza 准备发送另一条报文。当发送多条
报文时,最好使用 %MSG.D 位。如果不使用该位,可能导致报文丢失。
发送多条连续报文
执行 EXCH 指令会激活应用程序中的报文功能块。如果报文功能块未被激活 (%MSG.D=1),报 文被发送。如果在一个周期内有多条报文被发送,只有第一条能被发送。用户可通过编程来实现 多条报文的发送。
例如:连续发送两条报文。
%I0.0
P
%MSG.D
%MSG.D
EXCH%MW2:4
%M0
(S)
%M0
EXCH%MW8:3
%M0
(R)
LDR %I0.0 AND %MSG.D
[EXCH %MW2:4]
S %M0 LD %MSG.D AND %M0
[EXCH %MW8:3]
R %M0
交换重新初始化
通过激活输入(或指令)R 来取消一次交换。该输入可初始化通信并把输出 %MSG.E 复位为 0,把输出 %MSG.D 复位为 1。如果检查到一个故障,可以重新初始化交换。
 例如:BLK %MSG
LD %M0 R
END_BLK
%M0
%MSG
R
D
E
特殊情况:
冷启动的影响:(%S0=1)强行重新初始化通信。
热启动的影响:(%S1=1) 无影响。
PLC 停止的影响:如果一条报文正在发送,PLC 将中止发送并重新
初始化输出 %MSG.D %MSG.E
68
ASCII 模式的特性
可以通过终端端口来选择 ASCII 输出模式。当 TSX Neza 处于 ASCII 模式时,状态位 %S100 置为 1
该指令的三个用途为:
发送
发送/接收
接收
发送或接收帧最大为 128 个字节。 与 EXCH 指令相关的字表由发送表和接收表组成。
高位字节 低位字节
B
命令 长度 LgT/LgR ... ...
控制
发送的字节 1 发送的字节 2 ... ...
... ...
发送表 ... 发送的字节 n 发送的字节 n+1 接收的字节 1 接收的字节 2
... ...
接收表 ... 接收的字节 p
接收的字节 p+1 长度字节表示发送字符的长度 (LgT),在接收的结尾被改写为接收字符的长度 (LgR)。
命令字节必须包括下列值中的一个:
0: 发送
1: 接收后发送
2: 接收
69
B
当接收到帧的末尾字节后,接收结束 (1)。该字节的值可由用户修改(系统字%SW68的低位字 节)。该字节的默认值为 H'0D'(回车)。
(1) 警告:
系统不能控制接收延时。
向一个 ASCII 设备发送一条报文:只传送
SEND 指令对应的数据块中需将数据写入一个 ASCII 设备(如显示器、打印机等)的内容 有:
高位字节 低位字节
0 (发送) 报文的长度(字节) ASCII 数据
报文的最大长度为 128 个字节。
1要求使用 ASCII 协议在打印机上显示报文 "FAULT 10"
%I0.0 %MSG.D
P
EXCH %KW10:7
LDR %I0.0 AND %MSG.D
[EXCH %KW10:7]
字表的内容: 字 内容 高位字节 低位字节 %KW10 12 0 字节长度 LgT%KW11 'DE' %KW12 'FA' ASCII 文本 %KW13 'UT'
%KW14 '1' %KW15 '0' %KW16 16#0A0D 行回车 回车
70
ASCII 发送/接收
在发送结束时,TSX Neza 切换成等待接收的状态。如果接收状态正常且询问长度 (LgT) 和响 应 (LgR) 的长度都小于 %MWi 保留区(长度为 L),那么等接收到响应后,把它复制到与发送 表相关的 %MWi 区。如果不是这种情况,则位 %MSG.E 变为 1。 当检测到结束码或者接收表满了时,接收结束。(结束码的默认值为 H'0D',但也可在 %SW68 内修改)。 在接收时无超时处理。
用于发送/接收 ASCII 数据,与 EXCH 指令相关的字表内容如下:
高位字节 低位字节
1 (发送/接收) 长度 LgT 或 LgR 控制 发送的字节 1 发送的字节 2
... ... 发送表
... 发送的字节 n
B
发送的字节 n+1 接收的字节 1 接收的字节 2
... ... 接收表
... 接收的字节 p 接收的字节 p+1 结束码 (H'0D')
注意
不能使用 %KWi 类字。
当交换结束(结束字符已接收),传送长度字节 LgT 包括接收字符数目(LgT)。 传送长度字节因而必须在每次交换前更新。
报文接收区被调整至发送区后的字。
71
B
例如:
字 高位字节 低位字节
%MW10 16#0001 16#0007 %MW11 'V' 'A' %MW12 'L' 'U' %MW13 'E' ' ' %MW14 ':' 未使用
相关程序:
LDR %I0.0 AND %MSG.D
[EXCH %MW10:5]
该程序发送下列帧:VALUE :7 个字节,等待接收响应(最大 8 个字节)。 可通过字 %MW15 %MW18 访问接收到的字符。
%I0.0 %MSG.D
P
EXCH %MW10:5
字表长度的计算
LgT = 7 LgR =8 L = 1 + LgT + LgT%2 + LgR + LgR%2 = 9
22
72
ASCII 设备接收报文
在执行已经被设置为接收的 EXCH 块时,TSX Neza 切换至等待接收的状态。如果接收状态正 常且响应 (LgR) 的长度小于 %MWi 保留区(长度为 L),那么等接收到响应后,把它复制到与 发送表相关的 %MWi 区。如果不是这种情况,则位 %MSG.E 变为 1。 当检测到结束码或者接收表满了时,接收结束。(结束码的默认值为16#0D,但也可在 %SW68 内修改。) 在接收时无超时处理。
用于接收ASCII 数据,与 EXCH指令相关的字表内如下:
高位字节 低位字节 2(接收) 0 (1) 控制 接收的字节 1 接收的字节 2
... ... 接收表
... 接收的字节P 接收的字节 p+1 结束码(H’0’D)
B
注意
不能使用 %KWi 类型字。
通信类型由表中的第1 个字控制。
(1) 在接收模式中, 没有考虑低位字节。
73
B
数据交换控制
使用 %MSG 功能块和系统字 %SW69 进行数据交换控制。 在每次交换后,都会更新 %SW69中的内容(EXCH 块记录):
0: 交换正常
1:发送表太大 (LgT>128)
2:发送表太小 (LgT=0)
3: 字表太小 (1)
7:错误 ASCII 命令(命令类型 <> 01 2
8:保留
9:接收错误(通信格式问题(速度、奇偶等))
10:在接收或发送/接收时不能使用 %KWi
L < 1 + LgT + LgT%2 + LgR + LgR%2
2
2
L 用字表示,LgT LgR 用字节表示。
74
UNI-TELWAY 设备对话
用于向一个 UNI-TELWAY 设备(如 ATV 速率控制器或者人机界面设备(CCX 17 XBT)等) 发送请求,对应 EXCH 指令的字表由发送和接收表组成。  高位字节 低位字节
目标地址 长度 LgT / LgR (字节) 控制 分类码 请求码 第一个字 (MSB) 第一个字(LSB) 发送表
...
n-1 (MSB) 字 n-1 (LSB) n (MSB) n (LSB)00 (强制设置) 接收到的响应码 接收的数据 2 接收的数据 1 接收表
...
接收的数据 p-1
...
...
接收的数据 p
B
可发送和接收的最长报文为 128 字节。 报文接收区通常排在发送区后。
EXCH 块在发送长度区读取被发送的报文的长度 (LgT)。当交换结束时,写入接收到的报文的长 度 (LgR)
因此在每次发送前,发送长度字节都要被更新。
 响应码写在接收表的第一个字的低位字节内。该字的高位字节被强置为 0。如果其后仍有数据, 则写在下一个字内。
75
B
Uni-Telway 主站
在该模式中, TSX Neza通常控制着两个设备,它们分散在 5 个从地址中。如果一个编程终端 的地址是单一的,那么 TSX Neza 就可以控制两个设备和一个 PL707WIN 编程终端。
TSX Neza 不能管理从对从的链路。 TSX Neza Master 可以利用 EXCH 块把一条请求发送给 1 5 中的任意一个从地址。它使用源 地址 0.254.16 EXCH 块对应字表中的目标地址必须是下列值之一:
0:把一条请求发送到从地址 4
1 到 5: 1 5 中的某一个从地址中发送和接收一条请求。
如果目标地址为 0,则 EXCH 块的特性如下:
接收缓冲未被使用,
表可位于 %KWi 区,
当从地址发出的响应被接收到时, 位 %MSG.D 变为 1
从地址发出的响应被忽略,
只有写请求和非请求数据请求可以使用。
如果目标地址是 1 5 中的一个:
必须有接收表(至少1 个字),
字表必须位于 %MWi 区内,
当从地址发出的响应被接收到时, 位 %MSG.D 变为 1
从地址发出的响应被复制到接收表中。
应用举例:
把请求“Read word”(读字) %MW510 (16#01FE) 发送到地址为 2 的设备中。 字 高位字节 低位字节
%MW10 02 04 %MW11 07 04 %MW12 01 FE
 相关程序:
LDR %I0.0 AND %MSG.D
[EXCH %MW10:5]
%I0.0 %MSG.D
P
EXCH %MW10:5
EXCH 块使用 %MWi:L 作为参数:
i 代表表内第一个字的地址
L代表字表内字的个数
76
当位%MSG.D = 1 且位 %MSG.E = 0 时,表内包括以下数据:
字 高位字节 低位字节 %MW10 02 04 %MW11 07 04 %MW12 01 FE %MW13 00 34 %MW14 ‘AB’ ‘CD’
粗体的数据表示:
接收到4 个字节
接收到的响应码=16#0034,
%MW510 的值=16#ABCD
B
77
B
Unitelway
从站从站
从站
从站从站
任何设备(当地或远程)可以从TSX Neza 从站(作为一个目标地址Ad0)访问系统服务器。 一个 TSX Neza从站(客户)可以利用 EXCH 块向任一主或从设备(地址为 0 98)发送请 求。EXCH 块对应字表中的目标地址应在 100 198 之间。 EXCH 块的特性如下:
必须有接收表(至少一个字),
字表必须位于 %MWi 区内,
当从地址发出的响应被接收到时, 位 %MSG.D 变为 1
从地址发出的响应被复制到接收表中。
应用举例:
把请求“Read word”(读字) %MW510 发送到主机中。 字 高位字节 低位字节
%MW10 00 04 %MW11 07 04 %MW12 01 FE
 相关程序:
LDR %I0.0 AND %MSG.D
[EXCH %MW10:5]
EXCH 块使用 %MWi:L 作为参数:
i 代表表内第一个字的地址
L 代表字表内字的个数  当位 %MSG.D = 1 且位 %MSG.E = 0 时,表内包括以下数据:
字 高位有效字节 高位有效字节
%MW10 00 04 %MW11 07 04 %MW12 01 FE %MW13 00 34 %MW14 'AB' 'CD'
78
粗体的数据表示:
接收到4 个字节,
接收到的响应码 = 16#0034
%MW510 的值 = 16#ABCD
其他例子: 把请求“Read word %MW510 发送到从 32 中。
字 高位字节 低位字节
%MW10 20 04 %MW11 07 04 %MW12 01 FE
相关程序:
LDR%I0.0 AND%MSG.D
[EXCH%MW10:5]
EXCH块使用 %MW:L 作为参数:
i 代表表内第一个字的地址
L 代表字表内字的个数
B
%MSG.D = 1 并且 %MSG.E = 0 时,表内包括以下数据:
字 高位字节 低位字节
%MW10 20 04 %MW11 07 04 %MW12 01 FE %MW13 00 34 %MW14 'AB' 'CD'
粗体的数据表示:
接收到4 个字节,
接收到的响应码 = 16#0034
%MW510 的值 = 16#ABCD
79
B
数据交换控制
使用 %MSG 功能块和系统字 %SW69 进行数据交换控制。 在下列情况下位 %MSG.D 设为 1:
接收到响应时
出现发送错误(接收失败NAK)
功能块被重新初始化
7 秒内响应没有到达 (响应超时) 出现其它任何错误(在字 %SW69 中表述),位 %MSG.D 都变为 1:
在每次交换后,%SW69中的内容(EXCH 块记录)更新为:
0: 交换正常
1: 发送表太大 (LgT>128)
2: 发送表太小 (LgT=0)
3: 字表太小 (1)
4: Unitelway 地址错误 在 UNI-TELWAY 从模式中目标地址不在 [0...98] 或 [100...198] 内 UNI-TELWAY 主模式中目标地址不在 [1...5] 内
5: 超时中止
6: 发送错误(对方响应NAK
7: 错误 ASCII 命令(命令字节 < > 01 2
8: 保留
9: 接收错误(通信格式问题(通信速度、奇偶等))
10: 在接收或发送/接收时使用了被禁止的 %KWi 表 
(1) L < 1 + LgT + LgT%2 + LgR + LgR%2
22
L 用字表示,LgTLgR 用字节表示。
80
3.2-7 移位寄存器功能块 %SBRi
B
R
CU
CD
移位寄存器功能块
特性
寄存器编号 寄存器位
输入复位
(或指令)
左移位输入
%SBRi
%SBRi %SBRi.j
R
CU
移位寄存器用于存放二进制数据(0 1), 并把它们向一个方向移动。
0 7 寄存器中的 0 15 位(j = 0 到 5)
可由测试指令进行测试,由赋值指令写入值 在一个上升沿处,把寄存器位%SBRi.j
0 15 设为 0 在上升沿处,把寄存器位向左移
(或指令)
右移位输入
(或指令)
CD 在上升沿处,把寄存器位向右移
操作
初始状态  CU %SBRi 执行向左移位
15 丢失  使用指令 CD 也可右移 1 位,位 0 丢失。
如果 16 位寄存器不够用,则通过编程串联几个寄存器。
1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0
15
1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0
15
0
0
81
B
编程 例如:每秒向左移动一位:假设位 0 与位 15 的状态相反。
%SBR0.15
%SBR0
R
%S6
CU
CD
%SBR0.0
( )
LDN %SBR0.15 ST %SBR0.0 BLK %SBR0 LD %S6
CU
END_BLK
不可逆编程
LDN %SBR0.15 ST %SBR0.0 LD %S6
CU %SBR0
特殊情况:
冷启动的影响:(%S0=1) - 把所有的寄存器字的位置为 0
热启动的影响:(%S1=1) 对寄存器字内的位无影响。
可逆编程
82
3.2-8 步进计数器功能块 %SCi
B
%SCi
R
CU
CD
步进计数器功能块
步进计数器由一系列动作可被赋值的步组成。由外部或内部 事件决定从一步移到另一步。当一步被激活时,其相应位置 为 1。步进计数器中每次只能有一步被激活。
特性
步进计数器编号 %SCi 0 7 步进计数器位 %SCi.j 寄存器中的 0 225 ( j = 0 225)  可由LD 逻辑操作进行测试,由赋值指令写入值 复位输入 R 在上升沿,复位步进计数器
(或指令)
递增输入 CU 在上升沿,递增步进计数器一步
(或指令)
递减输入 CD 在上升沿,递减步进计数器一步
(或指令)
操作
CU 输入
CD 输入
被激活的步
0 1 2 3 2 1 0
83
B
编程
例如:通过输入 %I0.2 递增步进计数器 0。通过输入 %I0.3 或者当它达到步 3 时把它复位为 0。 0 控制输出 %Q0.1,步 1 控制输出 %Q0.2,步 2 控制输出 %Q0.3
可逆编程
%SC0.3
%I0.3
%I0.2
%SC0.0
%SC0.1
%SC0.2
%SC0
R
CU
CD
特殊情况
冷启动的影响:(%S0=1)
%Q0.1
( )
%Q0.2
( )
%Q0.3
( )
BLK %SC0
LD %SC0.3 OR %I0.3
R
LD %I0.2
CU
END_BLK LD %SC0.0 ST %Q0.1 LD %SC0.1 ST %Q0.2 LD %SC0.2 ST %Q0.3
不可逆编程
LD %SC0.3 OR %I0.3
R %SC0
LD %I0.2 CU %SC0 LD %SC0.0 ST %Q0.1 LD %SC0.1 ST %Q0.2 LD %SC0.2 ST %Q0.3
- 初始化步进计数器
热启动的影响:(%S1=1) 对步进计数器无影响
84
3.3 PLC 间的通信 对等PLC 间的通信
%IW %QW 用于在 PLC 之间交换数据。下图列出了每个 PLC 的交换字。当 PLC 处于 RUN 模式时,这些交换字自动更新。
B
Neza
%IW2.0 %IW2.1 %QW2.0 %QW2.1 %IW3.0 %IW3.1 %QW3.0 %QW3.1 %IW4.0 %IW4.1 %QW4.0 %QW4.1
TSX08RCOM
远程I/O 及通讯 扩展模块
对等PLC2
%QW5.0 %QW5.1 %IW5.0 %IW5.1
对等PLC3
%QW5.0 %QW5.1 %IW5.0 %IW5.1
对等PLC4
%QW5.0 %QW5.1 %IW5.0 %IW5.1
每个 PLC 的用户程序限于:
写输出字 %QWi.j
读输入字 %IWi.j
%IW/%QW 的更新周期与 PLC 扫描同步。当一个完整的更新周期完成后,系统位 %S70 置 为 1。它可由程序或终端复位为 0。位 %S71 / %S72 和字 %SW71 也可用于控制数据交换。
注意:每个 PLC 地址都是根据远程 I/O及通讯扩展模块 TSX08RCOM 上的旋转拨码开关的位 置决定的,并且在每一次上电时该位置起效。
85
B
1: PLC 向对等 PLC #2 发送数据表示生产的结束(位 %M0=1)。一旦对等 PLC 接收到该 数据,它就通过激活输出 %Q0.0 来启动一台物料处理机器。
本体PLC 编程
%M0
%QW2.0:X0
( )
%IW5.0:X0
%Q0.0
( )
2: PLC 向对等 PLC #4 发送计数器 0 的当前值。若当前值大于字 %MW0 所表示的阈值 时,对等PLC 通过中止输出 %Q0.1 来停止机器。
%QW4.0:=%C0.V
LD %M0 ST %QW2.0:X0
对等PLC 编程
LD %IW5.0:X0 ST %Q0.0
本体PLC 编程
LD 1 [%QW4.0:=%C0.V]
对等PLC 编程
LD [%IW5.0 >%MW0]
%Q0.1
%IW5.0>%MW0
Block I/O 扩展PLC
Block I/O扩展连接的PLC其所连接的远程I/O及通风扩展模块上的旋转拨码开关可在位置 1~4,受主PLC 的控制,其输入地址为 %Ii.j(i=1-4, j=0-11),输出地址为%Qi.j(i=1-4,j=0-7)
与主与主
与主 PLC 间的通讯
与主与主
( )
/
STN %Q0.1
86
4 时钟功能
4.1 简介
带实时钟的Neza 有实时时钟功能,它可以实现三个功能:
调度模块,用于控制动作,这些动作预先根据时钟定义。
时间/日期标记,用于记录事件发生的日期并测量持续的时间。
TSX Neza 的调度模块和实时时钟可以从 TSX PLC 的操作菜单中得到。另外,实时时钟也可 以由程序来设置。如果在 PLC 断电之前对其电池连续充电 6 个小时以上,那么在 PLC 掉电之 后,调度模块和日历时钟还可以连续运行 20 天。
日历时钟为 24 小时格式,并且可以考虑到闰年情况。
4.2 调度模块
调度模块用于控制在特定预定时间执行的动作。最多可以有 16 个调度模块。这些模块不需要编 程就可以对它们进行配置。
B
4.2-1 特性
调度模块序号 RTC : n n = 0 到 15 输出 Q : 输出任务,激活 %Mi 或 %Qj.k 。
当当前日期和时间在设定的激活期内时,该输出 端置1。
开始日期 DD:MMM 显示调度模块激活的起始日 1 31 和起始月1
12 月。
结束日期 DD:MMM 显示调度模块激活的结束日 1 31 和结束月1
12 月。
星期 MTWTFSS 显示一周内激活的日期。
M:星期一 到 S:星期日) 开始时间 hh:mm 显示调度模块激活的起始时(0 23)和分(0 59)。 结束时间 hh:mm 显示调度模块激活的结束时(0 23)和分(0 59)。
87
B
系统字 %SW114 的位可以使每一个功能块的操作使能(相应位置 1)或禁止(相应位置 0)。 %SW114
调度模块 #15 调度模块 #0
默认情况下(或冷启动以后),这个系统字的所有位都置为 1。程序可以根据需要使用这些位。
注释:
如果几个调度模块赋值经同一个输出(%Mi 或 %Qj.k),则最后赋给它的值是每个调度模块的 值的“OR”(也就是说,同一个输出有可能有好几个“操作范围”)。示例:为夏季喷洒程序配置调度模块。
RTC 6 :调度模块 #6
Q : %Q0.2 :调度模块激活输出
21 -Jun -> 21-Sep :激活期间(6 21 -> 9 21日)
星期一、星期三和星期五激活日
21 : 00 - 22 : 00 :计划激活时间
RTC:6 Q:%Q0.2 21 - Jun -> 21 - Sep
星期一,星期三和星期五
21 : 00 - 22 : 00
%I0.1
%SW114 : X6
( )
LD %I0.1 ST %SW114:X6
%I0.1
21 June
%Q0.2
星期 一 三 五 一 三 五 一 三 五
21 Sep
本例中,用户可以用一个开关或湿度检测器连接到输入端 %I0.1 禁止该调度模块。
注意:
检查 %S51 位的状态是很重要的,它给出了调度模块的错误信息。
4.2-2 时钟在程序中的使用
日期和时间可以从系统字 %SW50 %SW53(参见第 5.2 节)中得到。因此,由 PLC 程序可 修改日期和时间的当前值,或与包含给定值的字 %MWi (或 %KWi)进行算术比较,就可以实 现时间和日期的标记。
88
4.3 时间/日期标记
系统字 %SW50 %SW53(参见第 5.2 节)中包含 BCD 码格式的当前日期和时间,这对于在 外设上的显示与传送是十分有用的。这些系统字还可以用于存储事件的日期和时间。 要标记一个事件的日期,常见的操作是:利用赋值操作,将系统字的内容传送到内部字中,然后 再处理这些内部字(例如,用 EXCH 指令传送到显示单元)。
示例:
B
%I0. 1
P
一旦检测到一个事件,字表将包含以下内容:
编码 高位有效字节 低位有效字节
%MW12 星期 (1) %MW13 %MW14 %MW15 世纪
(1) 其中 0 = 星期一,1 = 星期二,2 = 星期三,3 = 星期四,4 = 星期五,5 = 星期六,6 = 星期
日。
%MW12:4:=%SW50:
4
...
LD %I0.1 [%MW12:4:=%SW50:4]
...
举例:
十六进制
3000 1340 0419 1994
1994 4 19 日,星期一
13 40 30 30 秒,0 = 星期一
13 时,40 4 = 四月,19日 1994
使用系统字读取 PLC 上一次停止的日期和时间
系统字 %SW54 %SW57(参见第 5.2 节)记录 PLC 上一次的日期和时间,系统字 %SW58 包含了导致上一次停止的原因的代码,均为 BCD 格式。
89
B
4.4 设置日期和时间
4.4-1 使用编程终端设置日期和时间
当编程终端在 TSX Neza(在线)模式时,可以简单而快速地更改日期和时间(参见 C 部分的
5.18节)。
4.4-2 使用系统字更新日期和时间
系统字提供了另外两种更新日期和时间的可能方式: 使用系统字 %SW50 %SW53 更新(参见 5.2 节) 为此,%S50 位必须设置为 1。这个位可以:
取消内部时钟(字 %SW50 %SW53 )的更新;
将字 %SW50 %SW53 中的值传送到内部时钟。
%S50
%S50
( )
%I0.1
P
[%SW50:=%MW10]
[%SW51:=%MW11]
[%SW52:=%MW12]
[%SW53:=%MW13]
%S50
( )
字表一定包含最新的日期和时间:
编码 高位字节 低位字节
%MW10 %MW11
秒 星期一 时 分
LD %S50
R
R %S50 LDR %I0.1 [%SW50: = %MW10] [%SW51: = %MW11] [%SW52: = %MW12] [%SW53: = %MW13] S %S50
%MW10 %MW13 中包含 BCD 码格式
S
的最新日期和时间。
举例: 十六进制
3002 1340
2000 4 19 日,星期三 13 40 30
30 秒, 2 = 星期三
13 时,40 %MW12 %MW13
月 日 世纪 年
0419 2000
4 = 四月,19
2000
(1) 其中 0 = 星期一,1 = 星期二,2 = 星期三,3 = 星期四,4 = 星期五,5 = 星期六, 6 = 星期日。
90
使用系统字 %SW59 更新
更新日期和时间的另一种方法是使用使能位 %S59 和调整字 %SW59。将 %S59 位设置为 1, 这样字 %SW59 就可以调整当前日期和时间。关于字 %SW59 的叙述在第 5.2 节。在上升沿分
别增加或减小日期和时间。
B
例如:建立一个面板,用于修改内部
时钟的时、分和秒。
%M0
%I0.2 %I0.0
P
%I0.2 %I0.1
P
%I0.3 %I0.0
P
%I0.3 %I0.1
P
%I0.4 %I0.0
P
%I0.4 %I0.1
P
%S59
%SW59:X3
%SW59:X11
%SW59:X2
%SW59:X10
%SW59:X1
%SW59:X9
( )
( )
( )
( )
( )
( )
( )
+ -
LD %M0 ST %S59 LD %I0.2 ANDR %I0.0 ST %SW59:X3 LD %I0.2 ANDR %I0.1 ST %SW59:X11 LD %I0.3 ANDR %I0.0 ST %SW59:X2 LD %I0.3 ANDR %I0.1 ST %SW59:X10 LD %I0.4 ANDR %I0.0 ST %SW59:X1 LD %I0.4 ANDR %I0.1 ST %SW59:X9
输入 %I0.2%I0.3 %I0.4 为时/分/秒开关控制。
输入 %I0.0 执行增加,+ 按钮。
输入 %I0.1 执行减小,- 按钮。
91
B
5 系统位和系统字
5.1 系统位
5.1-1 系统位列表
位 功能 初始状态 控制
%S0 1 = 冷启动(电源恢复时数据丢失) %S1 1 = 热启动(电源恢复时数据不丢失) %S4, %S5 时基 10ms100ms %S6, %S7 时基 1s、1min
%S8 0 = PLC 停止时输出保持 %S9 1 = 如果 PLC 运行,则 PLC 的输
出复位为0
%S10 0 = I/O 故障 %S11 1 = 警戒时钟溢出
%S13 1 = PLC RUN 后的第一次扫描 %S17 1 = 无符号算术运算或循环移位溢出 %S18 1 = 算术运算溢出或出错 %S19 1 = 扫描周期超时 %S20 1 = 索引溢出
%S50 1 = 设置调度模块 (RTC)
0S 或 U->S 0S 或 U->S
-S
-S 1U 0U
1S
-S 1S 0 S->U 0 S->U 0 S->U 0 S->U 0U
%S51 1 = 调度模块没有初始化或出错
0 = 设置调度模块
%S59 1 = 调整当前日期 %S70 1 = 更新扩展上的交换字 %IW/QW。处
Modbus 请求 %S71 1 = 通过扩展连接交换 %S72 0 = 对等 PLC 的扫描
%S100 /DPT 的状态 %S101 通讯端口设置
%S118 1 =PLC 故障 %S119 1 = 对等 PLC 故障
S = 系统控制;U = 用户控制;U->S = 由用户置 1,系统复位为 0;S->U = 由系统置 1,用 户复位为 0
0S
0U 0 S
0S 0U
-S 00 0S 0S
92
5.1-2 系统位的详细说明
TSX Neza PLC 的系统位 %Si 显示了 PLC 的状态,或者使用户的干预被执行。 可以在用户程序中检查这些位,以便检测任何需要特殊处理的事件。有一些位必须由程序复位到 初始或正常状态,然而,已经由系统复位到初始或正常状态的系统位不要再用程序或终端复位。
系统位 功能 描述
%S0 冷启动 正常值为 0,置1 时:
   该位在第一次完全扫描过程中置 1,并在下一次扫描之前复位为 0。  关于操作信息:参见 A 部分的第 7.1 节。
%S1 热启动 正常值为 0,置1 时:
  
 该位在第一次完全扫描结束且在更新输出之前由系统复位为 0。  关于操作信息:参见 A 部分的第 7.1 节。
电源恢复,数据丢失(电池故障);
用户程序;
终端(在数据编辑器中)。
电源恢复,并且保存数据;
用户程序;
终端(在数据编辑器中)。
B
这些位状态的改变由一个内部时钟控制,而且不与 PLC 的 扫描同步。 例如:%S4
5ms 5ms
%S4 %S5 %S6 %S7
时基
10ms 100ms 1s 1min
%S8 输出保持 初始值为 1,可以由程序或终端(在数据编辑器中)置 0
在状态 1 时,如果程序没有被正常执行或者 PLC 停止时 PLC 输出为 0;  ● 在状态 0 时,如果程序操作出错或者 PLC 停止时 PLC 输出保 持当前状态。
%S9 输出复位 正常值为 0,可以由程序或终端(在数据编辑器中)置 1:
在状态 1 时,当 PLCRUN 模式时 PLC 输出强置为 0;
 ● 在状态 0 时,PLC 输出被正常刷新。
93
Loading...