附录392
时序图:
掉电保持接通延时
定时器指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: TONR Txxx, PT
梯形图:
输入输出
参数
数据
类型
适用操作数
IN 布尔 使能位
Txxx 字 常数(0~255)
PT 整数 VW, IW, QW, MW, SW, SMW, LW, AIW, T, C, AC, 常数, *VD, *LD, *AC操作数说明:
定时器类型 分辨率 最大值 定时器IDTON/TOF
1ms 32767*1ms T32, T96
10ms 32767*10ms T33-T36, T97-T100
100ms 32767*100ms T37-T63, T101-T255
TONR
1ms 32767*1ms T0, T64
10ms 32767*10ms T1-T4, T65-T68
100ms 32767*100ms T5-T31, T69-T95
功能说明:掉电保护性接通延时定时器(TONR)指令在启用输入为\"打开\"时,开始计时。当前值(Txxx)大于或等于预设时间(PT)时,计时位为\"打开\"。当输入为\"关闭\"时,保持保留性延迟定时器当前值。您可使用保留性接通延时定时器为多个输入\"打开\"阶段累计时间。使用\"复原\"
MagicWorks PLC 编程软件用户手册
393
指令(R)清除保留性延迟定时器的当前值。达到预设值后,定时器继续计时,达到最大值32767时,停止计时。TON、TONR 和 TOF 定时器有三种分辨率。分辨率由定时器ID决定, 详细情况见操作数说明里的表格。
LAD 和 FBD 定时器选择
1)点击定时器号码域,然后键入定时器号码。
2)倘若您键入的定时器号码无效,则时间基准值继续为\"???\"。
3)将光标放在定时器框内稍等片刻,即可看到定时器工具提示。请查看此类定时器的有效号码列表。
4)一旦键入有效定时器号码,时间基准值就会在定时器框内显示,例如\"10 ms\"。<注释>
您可以将 TONR 用于累积多个计时间隔。
可用\"复原\"(R)指令复原任何定时器。\"复原\"指令执行下列操作:
定时器位 = 关闭,定时器当前值 = 0
只能用\"复原\"指令复原 TONR 定时器。
示例程序:
STL:
ORGANIZATION_BLOCK 主程序:OB1
Network 1
LD I0.0
TONR T0, +500 // 如果 I0.0 为打开状态,在 500*1ms 后定时器T0 超时,定时器的位为 1
// I0.0 打开 T0 启动开始计时,I0.0 关闭定时器当前值保持,下次I0.0打开累加
Network 2
LD T0 // 如果 T0 位打开,则点亮 Q0.0,反之关闭Q0.0 = Q0.0
Network 3
LD I1.0 // I1.0 打开时 T0 复位
R T0, 1
梯形图:
ORGANIZATION_BLOCK 主程序:OB1
Network 1
Network 2
附录394
Network 3
时序图:
断开延时定时器指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: TOF Txxx, PT
梯形图:
输入输
出参数
数据类型 适用操作数
IN 布尔 使能位
Txxx 字 常数(T0~T255)
PT 整数 VW, IW, QW, MW, SW, SMW, LW, AIW, T, C, AC, 常数, *VD, *LD, *AC操作数说明:
定时器类型 分辨率 最大值 定时器IDTON/TOF
1ms 32767*1ms T32, T96
10ms 32767*10ms T33-T36, T97-T100
100ms 32767*100ms T37-T63, T101-T255
MagicWorks PLC 编程软件用户手册
395
TONR
1ms 32767*1ms T0, T64
10ms 32767*10ms T1-T4, T65-T68
100ms 32767*100ms T5-T31, T69-T95
功能说明:断开延时定时器(TOF)用于在输入关闭后,延迟固定的一段时间再关闭输出。启用输入打开时,定时器位立即打开,当前值被设为 0。输入关闭时,定时器继续计时,直到消逝的时间达到预设时间。达到预设值后,定时器位关闭,当前值停止计时。如果输入关闭的时间短于预设数值,则定时器位仍保持在打开状态。TOF 指令必须遇到从\"打开\"至\"关闭\"的转换才开始计时。如果 TOF 定时器位于 SCR 区域内部,而且 SCR 区域处于非现用状态,则当前值被设为 0,计时器位被关闭,而且当前值不计时。TON、TONR 和 TOF 定时器有三种分辨率。分辨率由定时器 ID 决定, 详细情况见操作数说明里的表格。
LAD 和 FBD 定时器选择
1)点击定时器号码域,然后键入定时器号码。
2)倘若您键入的定时器号码无效,则时间基准值继续为\"???\"。
3)将光标放在定时器框内稍等片刻,即可看到定时器工具提示。请查看此类定时器的有效号码列表。
4)一旦键入有效定时器号码,时间基准值就会在定时器框内显示,例如\"10 ms\"。<注释>
TOF 及 TON 不能共享相同的定时器号码。例如,不能有 TON T32 和TOF T32。您可以将 TOF 用于延长时间以超过关闭(或假)条件,例如在电机关闭后使电机冷却。可用\"复原\"(R)指令复原任何定时器。\"复原\"指令执行下列操作:
定时器位 = 关闭,定时器当前值 = 0
复原后,TOF 定时器要求启用输入从\"打开\"转换为\"关闭\",以便重新启动。示例程序:
STL:
ORGANIZATION_BLOCK 主程序:OB1
Network 1
LD I0.0
TOF T32, +500 // 如果 I0.0 为打开状态,在 500*1ms 后定时器T32 超时,定时器的位为 0
// I0.0 下降沿 T32 启动开始计时,I0.0 上升沿T32 复位并且停止计时Network 2
LD T32 // 如果 T32 位打开,则点亮 Q0.0,反之关闭Q0.0 = Q0.0
梯形图:
ORGANIZATION_BLOCK 主程序:OB1
附录396
Network 1
Network 2
时序图:
开始间隔时间指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: BITIM OUT
梯形图:
输入输出参数 数据类型 适用操作数
OUT 双字 VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC功能说明:读取内置 1 毫秒计数器的当前值,并将该值存储于 OUT。双字毫秒值的最大计时间隔为 2 的 32 次方,即 49.7 日。
取当前微秒值指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表:R_UTIM OUT
梯形图:
MagicWorks PLC 编程软件用户手册
397
输入输出参数 数据类型 适用操作数
OUT 双字 VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC功能说明:读取内置 1 毫秒计数器的当前值,并将该值存储于 OUT,单位为毫秒,双字毫秒值的最大计时间隔为 2 的 32 次方,即 49.7 日。
使用示例:R_UTIM VD0
计算间隔时间指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: CITIM IN, OUT
梯形图:
输入输出参数 数据类型 适用操作数
IN 双字 VD, ID, QD, MD, SMD, SD, LD, HC, AC, *VD, *LD, *ACOUT 双字 VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC功能说明:计算当前时间与 IN 所提供时间的时差,将该时差存储于 OUT。双字毫秒值的最大计时间隔为 2 的 32 次方,即 49.7 日。取决于 BGN_ITIME 指令的执行时间,CAL_ITIME指令将自动处理发生在最大间隔内的一毫秒定时器翻转。字符串指令
字符串长度指令
设置 ENO = 0的错
误条件
0006 间接地址
0091 操作数范围
影响的特殊内存位 无
指令列表: SLEN IN, OUT
梯形图:
输入输出参数 数据类型 适用操作数
IN 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
附录398
OUT 字节 VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *LD, *ACASCII 常数字符串数据类型的格式:
字符串是一系列字符和对应的内存地址,每个字符作为一个字节存储。字符串的第一个字节是定义字符串长度(即字符数)的整数。如果常数字符串被直接输入程序编辑器或数据块,那么该字符串必须用双引号字符起始和结束 (\"字符串常数\")。
字符串的最大长度是 255 个字节(254 个字符加上长度字节)。下面的内存图显示了字符串数据类型的格式(一个方格代表一个字节):
功能说明:字符串长度指令返回 IN 指定的字符串长度。常数字符串参数最长为255 个字节。复制字符串指令
设置 ENO = 0的错误条件
0006 间接地址
0091 操作数范围影响的特殊内存位 无
指令列表: SCPY IN, OUT
梯形图:
输入输出参数 数据类型 适用操作数
IN 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
OUT 字符串 VB, *VD, LB, *LD, *AC
ASCII 常数字符串数据类型的格式:
字符串是一系列字符和对应的内存地址,每个字符作为一个字节存储。字符串的第一个字节是定义字符串长度(即字符数)的整数。如果常数字符串被直接输入程序编辑器或数据块,那么该字符串必须用双引号字符起始和结束 (\"字符串常数\")。
字符串的最大长度是 255 个字节(254 个字符加上长度字节)。下面的内存图显示了字符串数据类型的格式(一个方格代表一个字节):
功能说明:复制字符串指令将 IN 指定的字符串复制至 OUT 指定的字符串。常数字符串参数最长为 255 个字节。
从字符串复制子
字符串指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数范围
009B 非法索引(指定起始位置0的字符串操作)影响的特殊内存位 无
指令列表: SSCPY IN, INDEX, N, OUT
MagicWorks PLC 编程软件用户手册
399
梯形图:
输入输出参数 数据类型 适用操作数
IN 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
INDEX 字节 VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *LD, *ACN 字节 VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *LD, *ACOUT 字符串 VB, *VD, LB, *LD, *AC
ASCII 常数字符串数据类型的格式:
字符串是一系列字符和对应的内存地址,每个字符作为一个字节存储。字符串的第一个字节是定义字符串长度(即字符数)的整数。如果常数字符串被直接输入程序编辑器或数据块,那么该字符串必须用双引号字符起始和结束 (\"字符串常数\")。
字符串的最大长度是 255 个字节(254 个字符加上长度字节)。下面的内存图显示了字符串数据类型的格式(一个方格代表一个字节):
功能说明:从字符串复制子字符串指令将(从索引(INDEX)开始)IN 指定的具体字符串数目复制至 OUT 指定的字符串。
字符串连接指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数范围
影响的特殊内存位 无
指令列表: SCAT IN, OUT
梯形图:
输入输出参数 数据类型 适用操作数
IN 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
OUT 字符串 VB, *VD, LB, *LD, *AC
ASCII 常数字符串数据类型的格式:
字符串是一系列字符和对应的内存地址,每个字符作为一个字节存储。字符串的第一个字节是定义字符串长度(即字符数)的整数。如果常数字符串被直接输入程序编辑器或数据块,那么
附录400
该字符串必须用双引号字符起始和结束 (\"字符串常数\")。
字符串的最大长度是 255 个字节(254 个字符加上长度字节)。下面的内存图显示了字符串数据类型的格式(一个方格代表一个字节):
功能说明:字符串连接指令将 IN 指定的字符串附加至 OUT 指定的字符串之后。常数字符串参数最长为 255 个字节。
查找字符串指令
设置 ENO = 0的错
误条件
0006 间接地址
0091 操作数范围
009B 非法索引(指定起始位置0的字符串操作)影响的特殊内存位 无
指令列表: SFND IN1, IN2, OUT
梯形图:
输入输出参数 数据类型 适用操作数
IN1 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
IN2 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
OUT 字节 VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *LD, *ACASCII 常数字符串数据类型的格式:
字符串是一系列字符和对应的内存地址,每个字符作为一个字节存储。字符串的第一个字节是定义字符串长度(即字符数)的整数。如果常数字符串被直接输入程序编辑器或数据块,那么该字符串必须用双引号字符起始和结束(\"字符串常数\")。
字符串的最大长度是 255 个字节(254 个字符加上长度字节)。下面的内存图显示了字符串数据类型的格式(一个方格代表一个字节):
功能说明:在字符串内查找字符串指令在字符串 IN1 中搜索首次出现的字符串IN2。搜索从OUT起始位置开始。如果找到一个与字符串 IN2 完全符合的字符系列,该系列的第一个字符位置被写入 OUT。如果在字符串 IN1 中未找到字符串 IN2,OUT 被设为 0。单个常数字符串最长为126个字节,两个常数字符串综合最长为 240 个字节。
在 字 符 串 内 查 找
字符指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数范围
009B 非法索引(指定起始位置0的字符串操作)影响的特殊内存位 无
MagicWorks PLC 编程软件用户手册
401
指令列表: CFND IN1, IN2, OUT
梯形图:
输入输出参数 数据类型 适用操作数
IN1 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
IN2 字符串 VB, 常数字符串, LB, *VD, *LD, *AC
OUT 字节 VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *LD, *ACASCII 常数字符串数据类型的格式:
字符串是一系列字符和对应的内存地址,每个字符作为一个字节存储。字符串的第一个字节是定义字符串长度(即字符数)的整数。如果常数字符串被直接输入程序编辑器或数据块,那么该字符串必须用双引号字符起始和结束(\"字符串常数\")。
字符串的最大长度是 255 个字节(254 个字符加上长度字节)。下面的内存图显示了字符串数据类型的格式(一个方格代表一个字节):
功能说明:在字符串中查找字符指令在字符串 IN1 中搜索字符串 IN2 中描述的字符集中的任何字符首次出现的位置。搜索从起始位置 OUT 开始。如果找到一个相符的字符,该字符位置被写入 OUT。如果未找到相符的字符,OUT 被设为 0。 单个常数字符串最长为126 个字节,两个常数字符串综合最长为 240 个字节。表指令
内存填充指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数超出范围影响的特殊内存位 无
指令列表: FILL IN, OUT, N
梯形图:
输入输出参数 数据类型 适用操作数
IN 整数
VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常数, *VD, *LD, *AC
附录402
N 字节 VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *LD, *ACOUT 整数 VW, IW, QW, MW, SW, SMW, LW, T, C, AQW, *VD, *LD, *AC功能说明:内存填充(FILL)指令用包含在地址 IN 中的字值写入 N 个连续字,从地址OUT开始。N 的范围是 1 至 255。
先进先出指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数超出范围SM1.5 空表
影响的特殊内存位 SM1.5 空表
指令列表: FIFO TBL, DATA
梯形图:
输入输出参
数
数据类型 适用操作数
TBL 字 VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, *LD, *ACDATA 整数 VW, IW, QW, MW, SW, SMW, LW, AC, T, C, AQW, *VD, *LD, *AC功能说明:先入先出(FIFO)指令通过移除表格(TBL)中的第一个条目,并将数值移至DATA指定位置的方法,移动表格中的最早(或第一个)条目。表格中的所有其他条目均向上移动一个位置。每次执行指令时,表格中的条目数减 1。
提示:欲建立表格,首先为最大表条目数建立一个条目。如果您没有这样做,则无法在表格中建立任何条目。此外,所有的表格读取和表格写入指令必须用边缘触发器指令激活。后进先出指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数超出范围SM1.5 空表
影响的特殊内存位 SM1.5 空表
指令列表: LIFO TBL, DATA
梯形图:
输入输出参
数
数据类型 适用操作数
TBL 字 VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, *LD, *ACDATA 整数 VW, IW, QW, MW, SW, SMW, LW, AC, T, C, AQW, *VD, *LD, *AC功能说明:后入先出(LIFO)指令将表格中的最新(或最后)一个条目移至输出内存地址,方
MagicWorks PLC 编程软件用户手册
403
法是移除表格(TBL)中的最后一个条目,并将数值移至 DATA 指定的位置。每次执行指令时,表格中的条目数减 1。
提示:欲建立表格,首先为最大表条目数建立一个条目。如果您没有这样做,则无法在表格中建立任何条目。此外,所有的表格读取和表格写入指令必须用边缘触发器指令激活。表格查找指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数超出范围影响的特殊内存位 无
指令列表:
FND= TBL, PIN, INDEX
FND<> TBL, PIN, INDEX
FND< TBL, PIN, INDEX
FND> TBL, PIN, INDEX
梯形图:
输入输出参数 数据类型 适用操作数
TBL 字 VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, *LD, *ACPIN 整数
VW, IW, QW, MW, SW, SMW, AIW, LW, T, C, AC, 常数, *VD, *LD, *AC
INDEX 字 VW, IW, QW, MW, SW, SMW, LW, T, C, AC, *VD, *LD, *AC功能说明:表格查找(TBL)指令在表格(TBL)中搜索与某些标准相符的数据。\"表格查找\"指令搜索表,从 INDEX 指定的表格条目开始,寻找与 CMD 定义的搜索标准相匹配的数据数值(PTN)。命令参数(CMD)被指定一个 1 至 4 的数值,分别代表 =、<>、<, and >。如果找到匹配条目,则 INDEX 指向表格中的匹配条目。欲查找下一个匹配条目,再次激活\"表格查找\"指令之前必须在 INDEX 上加 1。如果未找到匹配条目,INDEX 的数值等于条目计数。一个表格最多可有 100 个条目,数据项目(搜索区域)从 0 排号至最大值 99。<注释> 当您在用 ATT、LIFO 和 FIFO 指令生成的表格中使用\"表格查找\"指令时,条目计数与数据条目直接对应。\"表格查找\"指令并不要求 ATT、LIFO 和 FIFO 所要求的最大条目数。因此,如下所示,您应当将\"查找\"指令的 SRC 操作数设为一个高于对应的\"增加至表格\"、\"后入先出\"或\"先入先出\"指令 TBL 操作数的一个字地址(两个字节)。
提示:欲建立表格,首先为最大表条目数建立一个条目。如果您没有这样做,则无法在表格中建立任何条目。此外,所有的表格读取和表格写入指令必须用边缘触发器指令激活。
附录404
追加至表格指令
设置 ENO = 0的错误
条件
0006 间接地址
0091 操作数超出范围SM1.4 表溢出
影响的特殊内存位 SM1.4 表溢出
指令列表: ATT DATA, TABLE
梯形图:
输入输出参数 数据类型 适用操作数
DATA 整数
VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常数, *VD, *LD, *AC
TBL 字 VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, , *LD*AC功能说明:增加至表格(ATT)指令向表格(TBL)中加入字值(DATA)。表格中的第一个数值是表格的最大长度(TL)。第二个数值是条目计数(EC),指定表格中的条目数。新数据被增加至表格中的最后一个条目之后。每次向表格中增加新数据后,条目计数加1。表格最多可包含 100 个条目,不包括指定最大条目数和实际条目数的参数。
提示:欲建立表格,首先为最大表条目数建立一个条目。如果您没有这样做,则无法在表格中建立任何条目。此外,所有的表格读取和表格写入指令必须用边缘触发器指令激活。中断指令
从中断程序有条件
返回指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: CRETI
梯形图:
输入输出参数 数据类型 适用操作数
无 无 无
功能说明:从中断指令有条件返回(CRETI)指令可根据先前逻辑条件用于从中断返回。欲增加中断程序,在 Project Manager 主界面点菜单编辑(Edit)>插入(Insert)>Organization Block,。<注释> MagicWorks PLC 自动为每个中断程序增加一个无条件返回。您应当优化中断程序,执行具体任务,然后使控制返回主例行程序。保持中断程序简明扼要,
MagicWorks PLC 编程软件用户手册
405
可加快执行速度,并且不会长时间延迟其他过程。否则,无法预测的条件会引起主程序控制的装置操作异常。限制在中断程序中不能使用 DISI、ENI、HDEF、LSCR、END 指令。中断使能和禁止指令
设置 ENO = 0的错误
条件
0004 尝试在中断程序中执行ENI、DISI 或HDEF 指令
影响的特殊内存位 无
指令列表:
ENI
DISI
梯形图:
输入输出参数 数据类型 适用操作数
无 无 无
功能说明:中断允许(ENI)指令全局性启用所有附加中断事件进程。中断禁止(DISI)指令全局性禁止所有中断事件进程。转换至 RUN(运行)模式时,中断开始时被禁止。一旦进入RUN(运行)模式,您可以通过执行全局中断允许指令,启用所有中断进程。执行中断禁止指令会禁止处理中断;但是现用中断事件将继续入队等候。
中断连接与分离指令
设置 ENO = 0的错误条件 0002 配置对 HSC 的输入赋值影响的特殊内存位 无
指令列表:
ATCH INT, EVENT
DTCH EVENT
梯形图:
输入输出参数 数据类型 适用操作数
INT 字节 OBx(x 为常数 2-127)
EVENT 字节 常数 0-33
功能说明:
中断连接(ATCH)指令将中断事件(EVNT)与中断程序号码(INT)相联系,并启用中断事件。
附录406
中断分离(DTCH)指令取消中断事件(EVNT)与所有中断程序之间的关联,并禁用中断事件。在激活中断程序之前,必须在中断事件和您希望在事件发生时执行的程序段之间建立关联。使用【中断连接】指令将中断事件(由中断事件号码指定)与程序段(由中断程序号码指定)联系在一起。您可以将多个中断事件附加在一个中断程序上,但一个事件不能同时附加在多个中断程序上。当您将一个中断事件附加在一个中断程序上是,会自动启用中断。如果您用全局禁用中断指令禁用所有的中断,则每次出现的中断事件均入队等候,直至使用全局启用中断指令或中断队列溢出重新启用中断。您可以使用【中断分离】指令断开中断事件与中断程序之间的关联,从而禁用单个中断事件。【中断分离】指令使中断返回至非现用或忽略状态。清除中断事件指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: CEVNT EVENT
梯形图:
输入输出参数 数据类型 适用操作数
EVENT 字节 常数 0-33
功能说明:清除中断事件指令会删除中断队列中所有类型为 EVNT 的中断事件。此指令用于清除不必要的中断,后者可能由假传感器输出暂态造成。
注:请参考附录 E 中断事件优先级列表。程序控制指令
循环指令
设置 ENO = 0的错误条件 0006 间接地址影响的特殊内存位 无
指令列表:
FOR INDEX, INIT, FINAL
NEXT
梯形图:
输入输出参数 数据类型 适用操作数
INDEX 整数 VW, IW, QW, MW, SW, SMW, LW, T, C, AC, *VD, *LD, *AC
MagicWorks PLC 编程软件用户手册
407
INIT 整数
VW, IW, QW, MW, SW, SMW, T, C, AC, LW, AIW, 常数, *VD, *LD, *AC
FINAL 整数
VW, IW, QW, MW, SW, SMW, LW, T, C, AC, AIW, 常数, *VD, *LD, *AC
功能说明:FOR(FOR)指令执行 FOR 和 NEXT 之间的指令。您必须指定索引值或当前循环计数(INDEX)、起始值(INIT)和结束值(FINAL)。NEXT(NEXT)指令标记FOR循环结束,并将堆栈顶值设为 1。使用 FOR/NEXT 指令描述为指定计数重复的循环。每条FOR指令要求一个 NEXT 指令。您可以复原 FOR/NEXT 循环(在 FOR/NEXT 循环中放置一个FOR/NEXT循环),深度可达八。例如,假定 INIT 值等于 1,FINAL 值等于 10,FOR 与NEXT 之间的指令被执行 10 次,INDEX 值递增:1、2、3、...10。如果起始值大于结束值,则不执行循环。每次执行 FOR 和 NEXT 之间的指令后,INDEX 值递增,并将结果与结束值比较。如果INDEX大于结束值,循环则终止。
<注释>
如果您启用 FOR/NEXT 循环,则将继续循环程序,直至结束反复操作,除非您从循环内部改变结束值。您可以在 FOR/NEXT 处于循环过程时改变数值。 再次启用循环时,它将初始值复制至索引值(当前循环次数)。下次被启用时,FOR/NEXT指令复原。
跳转指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表:
JMP n
LBL n
梯形图:
输入输出参数 数据类型 适用操作数
n 字节 常数 0~255
功能说明:
跳转至标签(JMP)指令对程序中的指定标签(n)执行分支操作。跳转接受时,堆栈顶值始终为逻辑 1。
标签(LBL)指令标记跳转目的地(n)的位置。
您可以在主程序、子程序或中断程序中使用\"跳转\"指令。\"跳转\"及其对应的\"标签\"指令必须始终位于相同的代码段中(主程序、子程序或中断程序)。您不能从主程序跳转至子程序或中断程序中的标签,与此相似,您也不能从子程序或中断程序跳转至该子程序或中断程序之外的标签。您可以在 SCR 段中使用\"跳转\"指令,但对应的\"标签\"指令必须位于相同的SCR 段内。
附录408
顺序控制继电器指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表:
LSCR n
SCRT n
SCRE
CSCRE
梯形图:
输入输出参数 数据类型 适用操作数
n 布尔 S
功能说明:SCR 指令为您提供一种可自然纳入 LAD、FBD 或 STL 程序的简单、强有力的状态控制编程技术。每当应用程序包含一系列必须重复执行的操作时,SCR 可用于为程序安排结构,以便使之直接与应用程序相对应。因而您能够更快速、更方便地编程和调试应用程序。载入顺序控制继电器(LSCR)指令用指令(N)引用的 S 位数值载入 SCR 和逻辑堆栈。SCR段被SCR 堆栈的结果数值激励或取消激励。SCR 堆栈数值被复制至逻辑堆栈的顶端,以便方框或输出线圈可直接与左电源杆连接,无须插入触点。顺序控制继电器转换(SCRT)指令识别要启用的 SCR 位(下一个要设置的 n 位)。当使能位进入线圈或 FBD 方框时,打开引用n 位,并关闭 LSCR 指令(启用该 SCR 段)的 n 位顺序控制继电器结束(SCRE)指令标记SCR段的结束。一旦将电源应用于输入,有条件顺序控制继电器结束(CSCRE)指令即标记SCR段结束。CSCRE 只有在 STL 编辑器中才能使用。
<注释> CSCRE 只有在第二代(22x)CPU(从 1.20 版开始)才能使用。下列说明适用于顺序控制继电器指令。
\"载入 SCR\"指令(LSCR)标记 SCR 段的开始,\"SCR 结束\"指令(SCRE)标记SCR段的结束。\"载入 SCR\"和\"SCR 结束\"指令之间的所有逻辑执行取决于S 堆栈数值。\"SCR结束\"和下一条\"载入 SCR\"指令之间的逻辑不取决于 S 堆栈数值。 \"SCR 转换\"指令(SCRT)提供一种从现用 SCR 段向另一个 SCR 段转换控制的方法。当\"SCR 转换\"指令有使能位时,该指令会复原当前现用段的 S 位,并设置被引用段的S位。在\"SCR 转换指令执行时,复原现用段的 S 位不会影响 S 堆栈。因此,SCR段在退出前保持激励状态。
【有条件 SCR 结束】指令(CSCRE)提供一种无须执行【有条件SCR 结束】和【SCR结束】指令之间的指令即可退出现用 SCR 段的方法。【有条件SCR 结束】指令不会影响任何 S 位,亦不会影响 S 堆栈。
使用 SCR 的限制
您不能在一个以上例行程序中使用相同的 S 位。例如,如果您在主程序中使用S0.1,则不
MagicWorks PLC 编程软件用户手册
409
能在子程序中再使用。
您不能在 SCR 段中使用 JMP 和 LBL 指令。这表示不允许跳转入或跳转出SCR段,亦不允许在 SCR 段内跳转。您可以使用跳转和标签指令在 SCR 段周围跳转。 您不能在 SCR 段中使用\"结束\"指令。
用 SCR 段控制程序流
CTSC-200 PLC 中的主程序包含每次 PLC 扫描即按顺序执行一次的指令。对于很多应用程序,可能需要以逻辑方式将主程序分为一系列操作步骤,以便反映控制进程中的步骤(例如,一系列机器操作)。
以逻辑方式将程序分为多个步骤的一种方法是使用 SCR 段。通过使用SCR 段,可以将程序分为一个连续步骤流,或分为可以同时现用的多个步骤流。可以将一个步骤流有条件地分为多个步骤流,或将多个步骤流有条件地重新组合为一个步骤流。
看门狗复位指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: WDR
梯形图:
输入输出参数 数据类型 适用操作数
无 无 无
功能说明:
看门狗复原(WDR)指令重新触发 CTSC-200 CPU 的系统监视程序定时器,扩展扫描允许使用的时间,而不会出现看门狗错误。使用\"看门狗复原\"指令时应当小心。如果使用循环指令阻止扫描完成或严重延迟扫描完成,下列程序只有在扫描周期完成后才能执行: 通讯(自由端口模式除外)
I/O 更新(立即 I/O 除外)
强迫更新
SM 位更新(不更新 SM0、SM5 至 SM29)
运行时间诊断程序
10 毫秒和 100 毫秒定时器对于超过 25 秒的扫描不能正确地累计时间 用于中断程序时的 STOP(停止)指令
配备离散输出的扩充模块还包括看门狗定时器,如果模块未被 CTSC-200 写入,监视程序定时器会关闭输出。对每个配备离散输出的扩充模块使用立即写入,在扩展扫描时间期间使正确的输出保持打开。
<注释> 如果您预计扫描时间将超过 500 毫秒,或者您预计会发生大量中断活动,可能阻止返回主扫描超过 500 毫秒,您应当使用 WDR 指令,重新触发看门狗定时器。每次使用【看门狗复原】指令时,您还应当使用对每个离散扩充模块中的一个输出字节(QB)使用立即写入,复原每个扩充模块看门狗。如果您使用\"看门狗复原\"指令允许执行要求很长扫描时间的程序,将模式
附录410
开关改变为 STOP(停止)位置会使 CTSC-200 在 1.4 秒内转换为 STOP(停止)模式。调用
设置 ENO = 0的错误条件 0008 功能嵌套数超过最大影响的特殊内存位 无
指令列表: CALL Function Name, parameter 1, ... parameter n (最多允许16个参数)
梯形图:
输入输出参
数
数据类型 适用操作数
FCx 功能 功能(x = 0 - 127)
使能位 布尔 使能位
输入参数
布尔,字节,字,整数,
双字,双整数,字符串
V, I, Q, M, SM, S, T, C, L, VB, IB, QB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, VW, T, C, IW, QW, MW, SMW, SW, LW, AC, AIW, *VD, *LD, *AC, VD, ID, QD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC, &VB, &IB, &QB, &MB, &T, &C, &SB, &AI, &AQ, &SMB, *VD, *LD, *AC, constant
输 入 / 输 出
参数
布尔,字节,字,整数,
双字,双整数
V, I, Q, M, SM, S, T, C, L, VB, IB, QB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, VW, T, C, IW, QW, MW, SMW, SW, LW, AC, AIW, *VD, *LD, *AC, VD, ID, QD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC输出参数
布尔,字节,字,整数,
双字,双整数
V, I, Q, M, SM, S, T, C, L, VB, IB, QB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, VW, T, C, IW, QW, MW, SMW, SW, LW, AC, AIW, *VD, *LD, *AC, VD, ID, QD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC功能说明:调用功能(CALL)指令将控制转换给功能(FCx)。您可以使用带参数或不带参数的 \"调用功能\" 指令。在功能完成执行后。控制返回至 \"调用功能\" 之后的指令。每个功能调用的输入/输出参数最大限制为 16。如果您尝试下载的程序超过此一限制,会返回一则错误信息。如果您为功能指定一个符号名,例如 USR_NAME,该符号名会出现在指令树的\"功能\" 文件夹中。
将参数值指定给功能中的局部内存时应遵守下列规则:
1)参数值指定给局部内存的顺序由 CALL 指定,参数从 L.0 开始。
2)一至八个连续位参数值被指定给从 Lx.0 开始持续至 Lx.7 的单字节。3)字节、字和双字数值被指定给局部内存,位于字节边界(LBx、LWx 或LDx)位置。在带参数的\"调用功能\"指令中,参数个数、类型与顺序必须与功能局部变量表中定义的变量完全匹配。参数顺序必须以输入参数开始,其次是输入/输出参数,然后是输出参数。<注释> 位于指令树中的功能名称的工具提示显示每个参数的名称。诊断 LED 指令 设置 ENO = 0的错误条件 无
MagicWorks PLC 编程软件用户手册
411
影响的特殊内存位 无
指令列表: DLED IN
梯形图:
输入输出参数 数据类型 适用操作数
IN 字节 VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *LD, *AC功能说明:
如果输入参数 IN 的数值为零,则诊断 LED 会被设置为不发光。如果输入参数IN 的数值大于零,则诊断 LED 会被设置为发光 (黄色)。标记为 SF/ DIAG 的 CPU 发光二极管(LED) 能够配置为:当在系统块内指定的条件为真或当 DIAG_LED 指令以非零 IN 参数得到执行时发黄光。系统块(配置 LED) 复选框选项:1) SF/ DIAG LED 会在 CPU 中的某个项被强制时发黄光2) SF/ DIAGLED 会在某模块有 I/O 错误时发黄光取消对两个【配置 LED】选项的复选,就会让DIAG_LED指令独自控制 SF/ DIAG 黄光。CPU 系统故障 (SF) 用红光表示。
从子程序有条件返回指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: CRET
梯形图:
输入输出参数 数据类型 适用操作数
功能说明:
从子程序有条件返回(CRET)指令根据前一个逻辑终止子程序。从子程序有条件返回指令是供选用指令。MagicWorks PLC 会自动增加要求使用的从子程序无条件返回指令,且不在程序编辑器的【子程序 POU】标记显示的程序逻辑中显示。
有条件结束指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: END
梯形图:
输入输出参数 数据类型 适用操作数
功能说明:
有条件结束(END)指令根据前一个逻辑条件终止主用户程序。
附录412
<注释> 您可以在主程序中使用【有条件结束】指令,但不能在子程序或中断程序中使用。MagicWorks PLC 自动在主用户程序中增加无条件结束。
有条件停机指令
设置 ENO = 0的错误条件 无
影响的特殊内存位 无
指令列表: STOP
梯形图:
输入输出参数 数据类型 适用操作数
功能说明:在条件满将 CPU 切换至 STOP 状态。通信指令
CANopen SDO
读写指令
设置 ENO = 0的错
误条件
0006 间接地址
影响的特殊内存位 SMB500~SMB532(显示 CANopen 通信的状态信息)
指令列表:
CANW NODE,REM,LOC,LEN,DONE,ERROR
CANR NODE,REM,LOC,LEN,DONE,ERROR
梯形图:
输入输出参数 数据类型 适用操作数
NODE 字节 常数(1~127)
REM 字节 VB, *VD, *LD, *AC
LOC 字节 VB, *VD, *LD, *AC
LEN 字节 常数(1~255)
DONE 布尔 Q, M, V
ERROR 双字 VD, QD, MD, AC, *VD, *LD, *AC
SDO 错误信息说明:
错误码 说明
MagicWorks PLC 编程软件用户手册
413
0x00000000 指令执行无错误
0x00000001 主站不处于 Operational 状态,因此不能发送
0x00000002 目标节点故障,因此不发送
0x00000003 目标节点不存在,因此不发送
0x00000004 上一次发送的相同命令尚未得到回应
0x00000005 用户输入的指令参数有错误
0x00000006 指令缓冲区已满
0x00000007 超时没有收到回应
0x00000008 收到的回应报文的数据长度有错误
0x00000009 收到的回应报文不是期望的回应报文
功能说明:
CANopen SDO 通信指令(CANW 和 CANR)是用于实现 CANopen 通信的SDO传输。CANW 将本地 LOC 开始长度为 LEN 字节的 V 内存的值写到 NODE ID 为NODE 的远程站中,远程站中的写入地址为 REM 开始长度为 LEN 的 V 内存。
CANR 是读入 NODE ID 为 NODE 的远程站的一块 V 内存的值,读取数据的来源为REM开始长度为 LEN 的 V 内存,读取数据在本地的存放地址为 LOC 开始长度为LEN 的V 内存。DONE 是完成标志位,读写未完成时为 0,每次读写完成后 DONE 被置1。ERROR 是错误标志,用于显示错误信息,ERROR=0 时表示无错误。读取设置端口地址
指令
设置 ENO = 0的错误条件
0006 间接地址
0004 尝试在中断程序中执行SPA(SPA)
影响的特殊内存位 无
指令列表:
GPA ADDR, PORT
SPA ADDR, PORT
梯形图:
输入输出参数 数据类型 适用操作数
ADDR(GPA) 字节 VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *LD, *ACADDR(SPA) 字节 VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *LD, *ACPORT 字节 常数(0用于 CPU224;0或1用于 CPU 226/226M/226L)功能说明:
获得端口地址指令(GPA)读取端口号为 PORT 的通信端口站地址,并将数值置于ADDR中指
附录414
定的地址内。
设置端口地址指令(SPA)将端口号为 PORT 的通信端口的站地址设为ADDR 中指定的数值,设定的新地址不会被永久性保存。电源重新上电后,设置的端口会返回至最后的地址(系统块里设置并下载的地址)。
网络读写指令
设置 ENO = 0的错误条件
0006 间接地址表状态字节 E 位为1
影响的特殊内存位 无
指令列表:
NETR TABLE, PORT
NETW TABLE, PORT
梯形图:
输入输出参数 数据类型 适用操作数
TBL 字节 VB, MB, *VD, *LD, *AC
PORT 字节 常数(0用于 CPU224;0或1用于 CPU 226/226M/226L)功能说明:
网络读取指令(NETR)开始一项通讯操作,通过指定的端口 PORT 根据表格TBL 定义从远程设备收集数据。
网络写入指令(NETW)开始一项通讯操作,通过指定的端口 PORT 根据表格TBL 定义向远程设备写入数据。
网络读写指令最多可从远程站读取或往远程站写入 16 字节信息,在程序中允许有任意数目的NETR/NETW 指令,但在任何时间最多只能有 8 条被激活,即激活的NETR 条数加NETW条数之和最多为 8 条。
用户还可以使用【网络读取/网络写入指令向导】配置通信程序。选择菜单命令【工具】->【NETR/NETW 指令向导】即可启动此向导。
TBL 参数定义
n7 n6 n5 n4 n3 n2 n1 n0
远程站地址
指针指向
数据区域
远程站
(I/Q/M/V)
MagicWorks PLC 编程软件用户手册
415
数据长度
数据字节0
数据字节1
...数据字节15
n7:完成(功能完成)0 = 未完成 1 = 完成
n6:现用(功能入队)0 = 非现用 1 = 现用
n5:错误 0 = 无错 1 = 错误
n4:保留,始终为 0
远程站址:存取数据的 PLC 地址
数据指针:指向 PLC 中数据的间接指针
数据长度:存取的数据字节数目(1-16)
接收或传输数据区域:如下所示,为数据保留的 1-16 个字节(由数据长度指定)。对于 NETR,该数据区域指执行 NETR 之后从远程站读取的数值存储的区域。对于 NETW,该数据区域指执行 NETW 之前发送至远程站的数值存储的区域。n3~n0:错误代码,含义如下:
错误代码 说明
0 无错
1 超时错误;远程站不应答
2 接收错误;应答中存在校验、帧或校验和错误3 脱机错误;重复站址或故障硬件引起的冲突
4 队列溢出错误;8 个以上 NETR/NETW 方框被激活5 违反协议;未启用 SMB30 中的 PPI+即尝试执行NETR/NETW6 非法参数;NETR/NETW 表格包含一个非法或无效数值7 无资源;远程站繁忙(正在上载或下载序列)8 第 7 层错误;违反应用程序协议
9 信息错误;数据地址错误或数据长度不正确
传送接收指令
设置 ENO = 0的错误
条件
0006 间接地址
0009 端口0中同时执行 XMT/RCV
000B 端口1中同时执行 XMT/RCV
接收状态字节显示接收有错误影响的特殊内存位
SMB86和 SMB186(接收用户的禁止命令终止接收信息、输入参数错误或无起始或结束条件、收到结束字符、超时、超出最大字符数或奇偶校验错误)SMB3(自由口接收优先级错误)
附录416
SMB4(中断队列溢出)指令列表:
XMT TABLE, PORT
RCV TABLE, PORT
梯形图:
输入输出参数 数据类型 适用操作数
TBL 字节 VB, IB, QB, MB, SB, SMB, *VD, *LD, *AC
PORT 字节 常数(0用于 CPU224;0或1用于 CPU 226/226M/226L)功能说明:
传送指令(XMT)在自由端口模式中使用,通过通讯端口传送数据。接收指令(RCV)开始或终止【接收信息】服务。您必须指定一个开始条件和一个结束条件,【接收】方框才能操作。通过指定端口(PORT)接收的信息存储在数据缓冲区(TBL)中。数据缓冲区中的第一个条目指定接收的字节数目。
示例程序:
STL:
ORGANIZATION_BLOCK 主程序:OB1
// 用串口工具写入以 S 开头 E 结束的字符串正确返回,Q0.0/Q1.0 亮Network 1
LD SM0.1
MOVB 0, VB500
MOVB 0, VB1000
MOVB 16#09, SMB30 //初始化 PORT0 为自由口,波特率 9.6k,8 位数据位,无校验MOVB 16#E0, SMB87 //允许接收,起始结束检测
MOVB 'S', SMB88 //起始字符‘S’ MOVB 'E', SMB89 //结束字符‘E’ MOVB 200, SMB94 //接收缓冲区为 200 个字节
ATCH INT0, 23 //启用中断,接收完成
ATCH INT1, 9 //发送完成
ENI
RCV VB100, 0
INTERRUPT_BLOCK INT_0:INT0
Network 1
LD SM0.0
XMT VB100, 0 //将收到的字符发送给 Port 0
AENO
= Q0.0
INCB VB1000
Network 2
MagicWorks PLC 编程软件用户手册
417
LD SM0.0
CRETI
INTERRUPT_BLOCK INT_1:INT1
Network 1
LD SM0.0
RCV VB100, 0 //发送完成后接收新的字符
AENO
= Q0.1
INCB VB500
Network 2
LD SM0.0
CRETI
附录418
梯形图:
ORGANIZATION_BLOCK 主程序:OB1
// 用串口工具写入以 S 开头 E 结束的字符串正确返回,Q0.0/Q1.0 亮Network 1
INTERRUPT_BLOCK INT_0:INT0
MagicWorks PLC 编程软件用户手册
419
INTERRUPT_BLOCK INT_1:INT1
以太网 PPI 网络读写指令 UDP_NETR/UDP_NETW
指令列表:UDP_NETR/UDP_NETW EN, TABLE, ENO
梯形图:
参数 类型 意义
EN BOOL 命令使能位,上升沿触发
TABLE BYTE 包含状态位、IP 地址、指针、数据长度、数据字节,具体描述参考表【UDP_NETR/UDP_NETW 中参数TABLE 的描述】。功能说明:以太网口网络读取指令(UDPNETR)开始一项通讯操作,通过CPU上的Ethernet
通信口,根据表格 TBL 定义从远程设备收集数据。
以太网口网络写入指令(UDPNETW)开始一项通讯操作,通过 CPU 上的Ethernet 通信口,根据表格 TBL 定义远程设备写入数据。
网络读写指令最多可从远程站读取或从远程站写入 200 字节信息,在程序中允许有任意数目的NETR/NETW 指令,但在任何时间最多只能有 8 条指令被激活。
TABLE 参数使用说明
字节偏移量 7 0
附录420
D A E n4 错误代码远程站 IP 地址第 1 个字节
远程站 IP 地址第 2 个字节
远程站 IP 地址第 3 个字节
远程站 IP 地址第 4 个字节
端口号高字节
端口号低字节
指向远程站目标区域指针<I,Q,M,V,DB>(共 4 个字节)第 1 个字节指向远程站目标区域指针第 2 个字节
指向远程站目标区域指针第 3 个字节
指向远程站目标区域指针第 4 个字节
数据长度
数据字节 0
数据字节 1
...数据字节 199
D:命令完成位,0=未完成,1=完成
A:激活位,0=指令不在执行中,1=指令正在执行中
E:错误,0=无错,1=错误
n4:保留,始终为 0
TABLE 参数中错误代码的描述
错误代码 说明
0 无错误
1 超时错误,远程站不应答
2 接收错误,应答中存在校验、帧或校验和错误
3 脱机错误,重复站地址或故障硬件引起的冲突
4 队列溢出错误,8 个以上 NETR/NETW 指令被激活6 非法参数,NETR/NETW 表格包含一个非法或无效数值7 无资源,远程站繁忙(正在上载或下载序列)
8 层 7 错误,违反应用程序协议
9 信息错误,数据地址或数据长度不正确
10 已达到最大连接数
MagicWorks PLC 编程软件用户手册
421
129 内部错误,表指针为空
注释:支持同时8个不同 IP 地址(即8个连接)的读写,每个 IP 地址可有32 条读写数据信息,每个信息读写的数据长度最大为 200 字节。
以太网 MODBUS 网络读写指令 MBUS_TCP_SND
指令列表:MBUS_TCP_SND EN, TABLE, ENO
梯形图:
参数 类型 意义
EN MBUS_TCP_SND 使能位
TABLE BYTE 包含状态位、IP 地址、端口号、读写类型、指针、数据长度、数据字节,具体描述参考下表TABLE 参数说明。功能说明:MODBUS_TCP 网络读写指令开始一项通讯操作,通过 MODBUS_TCP协议与指定的远程设备交换数据。用户还可以使用【MODBUS_TCP 指令向导】配置通信程序。TABLE 参数说明
字节偏移量 7 0
D A E n4 错误代码远程站 IP 地址第 1 个字节
远程站 IP 地址第 2 个字节
远程站 IP 地址第 3 个字节
远程站 IP 地址第 4 个字节
端口号高字节
端口号低字节
消息读写类型 0:读 1:写
读写地址第 1 个字节(高字节)
读写地址第 2 个字节
读写地址第 3 个字节
读写地址第 4 个字节(低字节)
保留
单元 ID
附录422
数据长度高字节
数据长度低字节
数据字节 0
...数据字节 239
D:读写功能完成位,0=未完成,1=完成
A:激活位,1=指令正在执行中,0=指令不在执行中
E:错误状态位,0=无错;1=有错误
n4:保留,始终为 0
TABLE 参数中错误代码的描述(只有在 Done 位为 1 时,错误代码才有效)错误代码 说明
0 无错误
1 响应校验错误
2 未用
3 接收超时(从站无响应)
4 请求参数错误(slave address,Modbus address,count,RW)5 Modbus/自由口未使能
6 Modbus 正在忙于其它请求
7 响应错误(响应不是请求的操作)
8 响应 CRC 校验和错误
101 从站不支持请求的功能
102 从站不支持数据地址
103 从站不支持此种数据类型
104 从站设备故障
105 从站接受了信息,但是响应被延迟
106 从站忙,拒绝了该信息
107 从站拒绝了信息
108 从站存储器奇偶错误
注释:
·同时可有多个从站消息读写,但是每个从站只能同时有一条消息读写。·TCP_MBUS_MSG 收到应答之后或者出错的时候 Done 才打开。
MagicWorks PLC 编程软件用户手册
423
·TCP MODBUS 最大支持 32 个连接,每条消息一次最大可读写 240 字节。外部总线读/写指令
EBUSR TBL
EBUSW TBL
梯形图
输入输出参数 数据类型 适用操作数TBL 字节 VB, MB, *VD, *LD, *AC功能说明:从模块读取 nBytes 到 TBL 中指向的地址/将 TBL 中指定的nBytes 写入到模块。TABLE 参数表定义:
错误码 ErrCode
R3 R2 R1 R0 S3 S2 S1 S0
偏移量 Offset0
偏移量 Offset1
数据长度 Len
数据字节 Byte[0]
数据字节 Byte[1]
...数据字节 Byte[Len-1]
ErrCode:0-成功、其它-失败;
R3 R2 R1 R0:机架号 RackID
S3 S2 S1 S0:槽号 SlotID
Offset0 Offset1:模块参数的偏移量,与总线通信应用层协议表中的偏移量对应Len:要读取或写入的数据字节数
Byte:读取或写入的数据
获取外部总线的诊断信息
EBUSGETDIA TBL
梯形图
附录424
功能说明:获取模块的诊断信息
TABLE 参数表定义:
错误码 ErrCode
R3 R2 R1 R0 S3 S2 S1 S0
数据长度 Len
数据字节 Byte[0]
数据字节 Byte[1]
...数据字节 Byte[Len-1]
ErrCode:0-成功、其它-失败
R3 R2 R1 R0:机架号 RackID
S3 S2 S1 S0:槽号 SlotID
Len:读取的诊断信息的字节数
Byte:读取的诊断信息内容
外部总线发送命令指令
EBUSSNDCMD TBL
梯形图
输入输出参数 数据类型 适用操作数TABLE 字节 VB, MB, *VD, *LD, *AC功能说明:向指定模块发送一条命令。
TABLE 参数表定义:
D E ErrCode5 ErrCode4 ErrCode3 ErrCode2 ErrCode1 ErrCode0R3 R2 R1 R0 S3 S2 S1 S0超时时间(ms)Timeout0
超时时间(ms)Timeout1
MagicWorks PLC 编程软件用户手册
425
输入数据长度 LenIn[0]
输入数据长度 LenIn[1]
输入数据字节 ByteIn[0]
输入数据字节 ByteIn[1]
...输入数据字节 ByteIn[LenIn-1]
输出数据长度 LenOut[0]
输出数据长度 LenOut[1]
输出数据字节 ByteOut[0]
输出数据字节 ByteOut[1]
...输出数据字节 ByteOut[LenOut-1]
D:完成位(功能完成) 0 = 未完成,1 = 完成
E:错误位 0 = 无错,1 = 错误
错误代码 说明
0x00 没有错误
0x01 发送超时
0x02 模块类型不对
0x03 没有多余的发送控制块
0x04 模块忙
0x05 等待标志超时
0x06 总线标志错误
0x07 软件错误
R3 R2 R1 R0:机架号 RackID
S3 S2 S1 S0:槽号 SlotID
Timeout0 Timeout1:指令执行的超时时间
LenIn:输入数据的字节数
ByteIn:输入数据的内容,格式根据具体模块来定
LenOut:输出数据的字节数
ByteOut:输出数据的内容,格式根据具体模块来定
附录426
C 特殊存储器(SM)标志位(小型 PLC 专用)特殊存储器标志位提供了一些具有特殊功能的位,便于用户查看和控制CTSC-100/200 CPU的状态。特殊存储器标志位能以位、字节、字或双字使用。
SM 标志位 功能
SMB0 状态位,只读
SMB1 状态位,只读
SMB2 自由口接收字符,只读
SMB3 自由口奇偶校验错误,只读
SMB4 队列溢出,只读
SMB5 I/O 状态,只读
SMB6 CPU 识别(ID)寄存器,只读
SMB8 至 SMB21 I/O 模块识别和错误寄存器,只读
SMW22 至 SMW26 扫描时间,只读
SMB28 和 SMB29 模拟电位器,只读
SMB30 和 SMB130 自由口控制寄存器
SMB31 和 SMW32 永久存储器(EEPROM)写控制
SMB34 和 SMB35 定时中断时间间隔寄存器
SMB36 至 SMB65 HSC0、HSC1 和 HSC2 寄存器
SMB66 至 SMB85 PTO/PWM 寄存器
SMB86 至 SMB94
SMB186 至 SMB194 接收信息控制
SMW98 扩展 I/O 总线错误
C.1 SMB0 至 SMB29(只读特殊内存)
SMB0:系统状态位
SMB0 的 8 个位在系统中有特殊作用,在每次扫描周期结束时 PLC 会更新这8 个位。用户在程序可以利用这些位的特殊功能来实现一些常用的操作,具体描述见下表:SMB0位 功能描述(只读)
SM0.0 该位始终打开,如果您希望程序中某段语句每一周期都能执行,可用此位作使能位。SM0.1 该位只在首次扫描时为1,可用作初始化程序段的使能位。SM0.2 如果断电保持数据丢失,该位为打开一个扫描周期。该位可用作错误内存位或激活特殊启动顺序的使能位。
MagicWorks PLC 编程软件用户手册
427
SM0.3 从电源打开进入 RUN(运行)模式时,该位为接通一个扫描周期。该位可用于在启动操作之前提供机器预热时间。
SM0.4 该位提供一个周期为1分钟30秒打开30秒关闭的方波时钟脉冲。SM0.5 该位提供一个周期为1秒钟0.5秒打开0.5秒关闭的方波时钟脉冲。SM0.6 该位为扫描时钟,本次扫描时置1,下次扫描时置0。可用作扫描计数器的使能位。SM0.7
该位指示 PLC 开关的位置(0:TERM、1:RUN)。可用该位作自由口通信程序段的使能位,这样当开关在 RUN 位置时,自由口通信方式有效,切换至TERM位置时,PPI 通信有效。
SMB1:指令执行状态位
SMB1 的 8 个位用于指示某些指令执行中的错误或特殊状态,详细描述见下表:SMB1位 功能描述(只读)
SM1.0 指令执行结果为0时,该位置1。
SM1.1 指令执行结果溢出或查出非法数值时,该位置1。
SM1.2 指令执行结果为负数时,该位置1。
SM1.3 指令中除数为0,该位置1。
SM1.4 执行 ATT 指令时,如果追加后的表长度超出表范围,该位置1。SM1.5 执行 LIFO 或 FIFO 指令时,如果表为空,该位置1。
SM1.6 当试图把一个非 BCD 数转换为二进制数时,该位置1。SM1.7 当 ASCII 码不能转换为有效的十六进制数时,该位置1。SMB2:自由口接收字符
SMB2 为自由口接收字符缓冲区,在自由口通信方式下,接收到的每个字符都放在这里,便于程序读取。详细描述见下表:
SM 地址 功能描述(只读)
SMB2 该字节包含自由口通讯过程中从端口0或端口1接收的每个字符。SMB3:自由口奇偶校验错误
SMB3 用于显示自由口奇偶校验错误。自由口通信模式下,在接收字符中检测到校验错误时,SM3.0 被置为 1。通常情况下,在程序接收和读取存储在 SMB2 中的信息字符数值之前,先使用该位检测自由口信息字符是否有传输错误。详细描述见下表:
SMB3位 功能描述(只读)
SM3.0 该位表示在端口0和端口1中是否存在校验错误
0:无错,1:错误
SM3.1~SM3.7 保留
附录428
SMB4:队列溢出
SMB4 包含中断队列溢出位,中断是否允许标志位,发送空闲位及是否存在强制标志位。队列溢出表明要么是中断发生的频率高于 CPU,要么是中断已经被全局中断禁止指令所禁止。详细描述见下表:
SMB4位 功能描述(只读)
SM4.0 通信中断队列溢出时,该位打开。仅限在中断程序中使用,队列空置且控制返回主程序时,该位被复位。
SM4.1 输入中断队列溢出时,该位打开。仅限在中断程序中使用,队列空置且控制返回主程序时,该位被复位。
SM4.2 定时中断队列溢出时,该位打开。仅限在中断程序中使用,队列空置且控制返回主程序时,该位被复位。
SM4.3 检测到运行时间编程错误时,该位打开。
SM4.4 该位反映全局中断启用状态,启用中断时,该位打开。SM4.5 端口0变送器闲置时,该位打开。
SM4.6 端口1变送器闲置时,该位打开。
SM4.7 当任何内存位置被强制时该位打开。
SMB5:I/O 状态
SMB5 包含系统里发现的 I/O 错误状态位,这些位提供了所发现的 I/O 错误的信息,详细描述见下表:
SMB5位 功能描述(只读)
SM5.0 当有 I/O 错误时,将该位置1。
SM5.1 当 I/O 总线上连接了过多的数字量 I/O 点时,将该位置1。SM5.2 当 I/O 总线上连接了过多的模拟量 I/O 点时,将该位置1。SM5.3 当 I/O 总线上连接了过多的智能 I/O 模块时,将该位置1。SM5.4~SM5.7 保留
SMB6:CPU 识别(ID)寄存器
SMB6 为 CPU 识别(ID)寄存器,用于识别 CPU 的类型,详细描述见下表:SM 地址 功能描述(只读)SMB6 CPU 识别寄存器
SM6.0~SM6.3 保留
SM6.4~SM6.7
用于识别 CPU 类型
0000:CPU212,CPU222;0010:CPU214,CPU224;0110:CPU221;1000:CPU215;1001:CPU216, CPU226, CPU226M, CPU 226XM, CPU 226XC, CPU226XM;
MagicWorks PLC 编程软件用户手册
429
1110:H35-00;
SMB6 格式:
MSB LSBBit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0x x x x r r r r
0000:CPU212,CPU222;
0010:CPU214,CPU224;
0110:CPU221;1000:CPU215;
1001:CPU216, CPU226, CPU 226M, CPU
226XM, CPU 226XC, CPU226XM;
1110:H35-00
保留SMB8 至 SMB21:I/O 模块识别和错误寄存器
SMB8 到 SMB21 是按照字节对形式(相邻两个字节)为扩展模 0 到6 而准备的。每对字节的偶数位字节为模块识别寄存器,奇数位字节为模块错误寄存器。前者标记着模块类型、I/O类型、输入和输出点数;后者为对相应模块所测得的 I/O 错误提示。详细描述见下表:SM 地址 功能描述(只读)
SMB8 模块0识别寄存器
SMB9 模块0错误寄存器
SMB10 模块1识别寄存器
SMB11 模块1错误寄存器
SMB12 模块2识别寄存器
SMB13 模块2错误寄存器
SMB14 模块3识别寄存器
SMB15 模块3错误寄存器
SMB16 模块4识别寄存器
SMB17 模块4错误寄存器
SMB18 模块5识别寄存器
SMB19 模块5错误寄存器
SMB20 模块6识别寄存器
SMB21 模块6错误寄存器
偶数字节(模块 ID 寄存器)格式:
MSB LSB
附录430
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0m t t a i i q qm:模块是
否存在
0--有模块
1--无模块
tt:模块类型
00--非智能 I/O 模块
01--智能模块
10--保留
11--保留
a:I/O 类型
0--开关量
1--模拟量
ii:输入点数
00--无输入
01--2 AI 或 8 DI
10--4 AI 或 16 DI
11--8 AI 或 32 DI
qq:输出点数00--无输出01--2 AQ或8DQ10--4 AQ或16DQ11--8 AQ或32DQ奇数字节(模块错误寄存器)格式:
MSB LSBBit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0c 0 0 b r p f t
c:配置错误
0--无错误
1--有错误
b:总线错误
或校验错误
0--无错误
1--有错误
r:超范围
错误
0--无错误
1--有错误
p:用户电源错误
0--无错误1--有错误f:熔断器错误0--无错误1--有错误t:端子块松动错误0--无错误1--有错误SMW22 至 SMW26:扫描时间
SMW22、SMW24 和 SMW26 提供扫描时间信息:以毫秒计的最短扫描时间、最长扫描时间及上次扫描时间。详细描述见下表:
SM 地址 功能描述(只读)
SMW22 上次扫描时间
SMW24 进入 RUN 方式后,所记录的最短扫描时间
SMW26 进入 RUN 方式后,所记录的最长扫描时间
SMB28 至 SMB29:模拟电位器
特殊内存字节 28 和 29 包含与模拟电位器 0 和 1 轴位置对应的数字值。模拟电位器位于CPU前方存取门后方。用一把小螺丝刀调整电位计(沿顺时钟方向增加,或沿逆时钟方向减少)。此类只读数值可被程序用于各种不同的功能,例如,为定时器或计数器更新当前值,输入或改动预设值或设置限制。模拟电位器有一个 0 至 255 的额定范围,以及±2 计数的可靠重复。详细描述见下表:
SM 地址 功能描述(只读)
SMB28 存储模拟调节器0的输入值。在 STOP/RUN 方式下,每次扫描时更新该值。SMB29 存储模拟调节器1的输入值。在 STOP/RUN 方式下,每次扫描时更新该值。C.2 SMB30 至 SMB549(读/写特殊内存)
SMB30 和 SMB130:自由口控制寄存器
MagicWorks PLC 编程软件用户手册
431
SMB30 控制自由口 0 的通讯方式,SMB130 控制自由口 1 的通讯方式。您可以对SMB30和SMB130 进行写和读,利用这两个字节设置自由口通信的操作方式,并提供自由口或者系统所支持的协议之间的选择。详细描述见下表:
SM 地址 功能描述
SMB30 自由口0控制寄存器
SMB130 自由口1控制寄存器
SM30.0~SM30.1 端口0通信协议选择
SM130.0~SM130.1 端口1通信协议选择
SM30.2~SM30.4 自由口0波特率
SM130.2~SM130.4 自由口1波特率
SM30.5 自由口0每个字符的数据位
SM130.5 自由口1每个字符的数据位
SM30.6~SM30.7 自由口0的校验选择
SM130.6~SM130.7 自由口1的校验选择
自由口控制字节格式:
MSB LSBBit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0p p d b b b mmpp:校验选择
00--无校验
01--偶校验
10--无校验
11--奇校验
d:每个字符的
数据位
0--8 位数据位
1--7 位数据位
bbb:自由口波特率
000—38.4kbps
001—19.2kbps
010—9.6kbps
011—4.8kbps
100—2.4kbps
101—1.2kbps
110—115.2kbps
111—57.6kbps
mm:协议设置00--点到点接口协议(PPI/从站模式)01--自由口协议10--PPI/主站模式11-- 保留(缺省是PPI/从站模式)<注意> 当选择 mm = 10(PPI 主站),PLC 将成为网络的一个主站,可以执行NETR和NETW指令。PPI 模式下忽略 2 至 7 位。
SMB31 和 SMW32:永久存储器(EEPROM)写控制
在用户程序的控制下,您可以把 V 存储器中的数据存入永久存储器,亦称非易失存储器。先把被存数据的地址存入 SMW32 中,然后把存入命令存入 SMB31 中。一旦您发出存储命令,则直到 CPU 完成存储操作 SM31.7 被置 0 之前,您不可以改变 V 存储器的值。在每次扫描周期末尾,CPU 检查是否有向永久存储器区中存数据的命令。如果有,则将该数据存入永久存储器中。详细描述见下表:
附录432
SM 地址 功能描述
SMB31 永久存储器命令寄存器
SM31.0~SM31.1 要保存的数据大小:00 =字节;01 =字节;10 =字;11 =双字SM31.2~SM31.6 保留,始终为00000
SM31.7
存入永久存储器,每次存储操作完成后,S7-200复位该位。0 = 无执行存储器操作的请求
1 = 用户程序申请向永久存储器存储数据
SMW32 所存数据的 V 存储器地址,该值是相对于 V0的偏移量。当执行存储命令时,把该数据存到永久存储器中相应的位置。SMB34 和 SMB35:定时中断的时间间隔寄存器
SMB34 和 SMB35 分别定义了定时中断 0 和中断 1 的时间间隔。您可以指定从1 毫秒至255毫秒的时间间隔(以 1 毫秒为增量)。如果相应的定时中断事件被连接到一个中断服务程序,CTSC-200CPU 就会获取该时间间隔值。若要改变该时间间隔,您必须把定时中断事件再分配给同一或另一中断程序,或通过中断分离来终止定时中断事件。
SM 地址 功能描述
SMB34 定时中断0的时间间隔数值
SMB35 定时中断1的时间间隔数值
SMB36 至 SMB65:HSC0、HSC1 和 HSC2 寄存器
SMB36 至 SMB65 用于监控和控制高速计数器 HSC0、HSC1 和 HSC2 操作。详细描述见下表:SM 地址 功能描述
HSC0
SMB36 HSC0计数器状态
SM36.0~SM36.4 保留
SM36.5 HSC0当前计数方向位:1=增计数
SM36.6 HSC0当前值等于预设值位:1=等于
SM36.7 HSC0当前值大于预设值位:1=大于
SMB37 HSC0控制字节
SM37.0 复位的有效控制位:0=高电平复位有效,1=低电平复位有效SM37.1 保留
SM37.2 正交计数器的计数速率选择:0=4x 计数速率;1=1x 速率SM37.3 HSC0方向控制位:1=增计数
SM37.4 HSC0更新方向:1=更新方向
MagicWorks PLC 编程软件用户手册
433
SM37.5 HSC0更新预设值:1=向 HSC0写新的预设值SM37.6 HSC0更新当前值:1=向 HSC0写新的初始值SM37.7 HSC0有效位:1=有效
SMD38
HSC0新的初始值,把新的当前值写入 SMD38后将SM37.6设为1,则当前值被更新
SMD42
HSC0新的预置值,把新的预设值写入 SMD42后将SM37.5设为1,则预设值被更新
HSC1
SMB46 HSC1计数器状态
SM46.0~SM46.4 保留
SM46.5 HSC1当前计数方向位:1=增计数
SM46.6 HSC1当前值等于预设值位:1=等于
SM46.7 HSC1当前值大于预设值位:1=大于
SMB47 HSC1控制字节
SM47.0 复位的有效控制位:0=高电平复位有效,1=低电平复位有效SM47.1 HSC1启动有效电平控制位:0=高电平,1=低电平SM47.2 正交计数器的计数速率选择:0=4x 计数速率;1=1x 速率SM47.3 HSC1方向控制位:1=增计数
SM47.4 HSC1更新方向:1=更新方向
SM47.5 HSC1更新预设值:1=向 HSC1写新的预设值SM47.6 HSC1更新当前值:1=向 HSC1写新的初始值SM47.7 HSC1有效位:1=有效
SMD48
HSC1新的初始值,把新的当前值写入 SMD48后将SM47.6设为1,则当前值被更新
SMD52
HSC1新的预设值,把新的预设值写入 SMD52后将SM47.5设为1,则预设值被更新
HSC2
SMB56 HSC2计数器状态
SM56.0~SM56.4 保留
SM56.5 HSC2当前计数方向位:1=增计数
SM56.6 HSC2当前值等于预设值位:1=等于
SM56.7 HSC2当前值大于预设值位:1=大于
附录434
SMB57 HSC2控制字节
SM57.0 复位的有效控制位:0=高电平复位有效,1=低电平复位有效SM57.1 HSC1启动有效电平控制位:0=高电平,1=低电平SM57.2 正交计数器的计数速率选择:0=4x 计数速率;1=1x 速率SM57.3 HSC2方向控制位:1=增计数
SM57.4 HSC2更新方向:1=更新方向
SM57.5 HSC2更新预设值:1=向 HSC2写新的预设值SM57.6 HSC2更新当前值:1=向 HSC2写新的初始值SM57.7 HSC2有效位:1=有效
SMD58
HSC2新的初始值,把新的当前值写入 SMD58后将SM57.6设为1,则当前值被更新
SMD62
HSC2新的预置值,把新的预设值写入 SMD62后将SM57.5设为1,则预设值被更新
<注释>
1)计数器状态位仅限在执行由高速计数器事件触发的中断程序里有效。2)当您使用 HSC 外部复位中断事件时,请勿在程序里重新设置新的当前值,然后在连接于该事件的中断程序里重新使能计数器,此操作会引起严重错误。
SMB66 至 SMB85:PTO/PWM 寄存器
SMB66 至 SMB85 被用于监控和控制 PLC(脉冲)指令的脉冲链输出和脉冲宽度调制功能。详细描述见下表:
SM 地址 功能描述
PTO0
SMB66 PTO0状态字节
SM66.0~SM66.3 保留
SM66.4 PTO0包络终止:0=无错,1=由于增量计算错误而终止SM66.5 PTO0包络终止:0=不由用户命令终止;1=由用户命令终止SM66.6
PTO0管道溢出(当使用外部包络时由系统清除,否则由用户程序清除):0=无溢出,1=有溢出
SM66.7 PTO0空闲位:0=PTO 忙,1=PTO 空闲
SMB67 Q0.0的控制脉冲串输出和脉冲宽度调制
SM67.0 PTO0/PWM0更新周期:1=写新的周期值
SM67.1 PWM0更新脉冲宽度值:1=写新的脉冲宽度
MagicWorks PLC 编程软件用户手册
435
SM67.2 PTO0更新脉冲量:1=写新的脉冲量
SM67.3 PTO0/PWM0基准时间单元:0=1 μs/格,1=1 ms/格SM67.4 同步更新 PWM0:0=异步更新,1=同步更新
SM67.5
PTO0操作:0=单段操作(周期和脉冲数存在SM 存储器中),1=多段操作(包络表存在 V 存储器区)
SM67.6 PTO0/PWM0模式选择:0=PTO,1=PWM
SM67.7 PTO0/PWM0有效位:1=有效
SMW68 PTO0/PWM0周期(2~65,535个时间基准)SMW70 PWM0脉冲宽度值(0~65,535个时间基准)SMD72 PTO0脉冲计数值(1~232 --1)
PTO1
SMB76 PTO1状态字节
SM76.0~SM76.3 保留
SM76.4 PTO1包络终止:0=无错,1=由于增量计算错误而终止SM76.5 PTO1包络终止:0=不由用户命令终止;1=由用户命令终止SM76.6
PTO1管道溢出(当使用外部包络时由系统清除,否则由用户程序清除):0=无溢出,1=有溢出
SM76.7 PTO1空闲位:0=PTO 忙,1=PTO 空闲
SMB77 Q0.1的控制脉冲串输出和脉冲宽度调制
SM77.0 PTO1/PWM1更新周期:1=写新的周期值
SM77.1 PWM1更新脉冲宽度值:1=写新的脉冲宽度
SM77.2 PTO1更新脉冲量:1=写新的脉冲量
SM77.3 PTO1/PWM1基准时间单元:0=1 μs/格,1=1 ms/格SM77.4 同步更新 PWM1:0=异步更新,1=同步更新
SM77.5
PTO1操作:0=单段操作(周期和脉冲数存在SM 存储器中),1=多段操作(包络表存在 V 存储器区)
SM77.6 PTO1/PWM1模式选择:0=PTO,1=PWM
SM77.7 PTO1/PWM1有效位:1=有效
SMW78 PTO1/PWM1周期(2~65535个时间基准)
SMW80 PWM1脉冲宽度值(0~65535个时间基准)
SMD82 PTO1脉冲计数值(1~232 --1)
附录436
SMB86 至 SMB94 和 SMB186 至 SMB194:接收信息控制
SMB86 至 SMB94 以及 SMB186 至 SMB194 被用于控制和读取有关【接收信息】指令的状态。详细描述见下表:
SM 地址 功能描述
P0接收信息
SMB86 P0接收信息状态字节
SMB87 P0接收信息控制字节
SMB88 P0信息字符的开始
SMB89 P0信息字符的结束
SMW90 P0空闲行时间间隔单位为毫秒。空闲行时间结束后接收的首个字符为新信息开始。SMW92 P0字符间/信息间定时器超时值(用毫秒表示)。如果超过时间,就停止接收信息。SMB94
P0接收字符的最大数(1~255字节)。
<注意> 这个区一定要设为希望的最大缓冲区,即使不使用字符计数信息终止。SMB110 用于启动强制上载保护功能
SMB111
编程卡覆盖选项:
0 -覆盖程序块和数据块;1 -不覆盖程序块,覆盖数据块;2 -覆盖程序块,不覆盖数据块;3 -不覆盖程序块和数据块;4 -与为0时相同SMB112 始终正确显示当前 CPU 版本信息
P1接收信息
SMB186 P1接收信息状态字节
SMB187 P1接收信息控制字节
SMB188 P1信息字符的开始
SMB189 P1信息字符的结束
SMW190 P1空闲行时间间隔单位为毫秒。空闲行时间结束后接收的首个字符为新信息开始。SMW192 P1字符间/信息间定时器超时值(用毫秒表示)。如果超过时间,就停止接收信息。SMB194
P1接收字符的最大数(1到255字节)。<注意> 这个区一定要设为希望的最大缓冲区,即使不使用字符计数信息终止。
接收信息状态字节格式:
MSB LSBBit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0n r e 0 0 t c pn = 1: 接收用户的禁止命令终止接收信息
r = 1: 输入参数错误或无起始或结束条件导致接收信息终止
MagicWorks PLC 编程软件用户手册
437
e = 1: 收到结束字符
t = 1: 接收信息终止:超时
c = 1: 接收信息终止:超出最大字符数
p = 1: 接收信息终止:奇偶校验错误
接收信息控制字节格式:
MSB LSBBit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0en sc ec il c/m tmr bk 0en: 0 = 禁止接收信息功能。
1 = 允许接收信息功能。
每次执行 RCV 指令时检查允许/禁止接收信息位。
sc: 0 = 忽略 SMB88 或 SMB188。
1 = 使用 SMB88 或 SMB188 的值检测起始信息。
ec: 0 = 忽略 SMB89 或 SMB189。
1 = 使用 SMB89 或 SMB189 的值检测结束信息。
il: 0 = 忽略 SMW90 或 SMW190。
1 = 使用 SMW90 或 SMW190 的值检测空闲状态。
c/m:0 = 定时器是内字符间定时器。
1 = 定时器是信息定时器。
tmr:0 = 忽略 SMW92 或 SMW192。
1 = 当 SMW92 或 SMW192 中的定时时间超出时终止接收。
bk: 0 = 忽略中断条件。
1 = 用中断条件作为信息检测的开始。
SMW98:扩展 I/O 总线错误
SMW98 给出有关扩展 I/O 总线的错误数的信息。详细描述见下表:SM 地址 功能描述
SMW98 当扩展总线出现校验错误时,该处每次增加1。当系统得电时或用户程序写入零,可以进行清零。
SMB136 至 SMB165:HSC3、HSC4 和 HSC5 寄存器
SMB136 至 SMB165 用于监视和控制高速计数器 HSC3、HSC4 和 HSC5 的操作。详细描述见下表:
SM 地址 功能描述
附录438
HSC3
SMB136 HSC3计数器状态
SM136.0~SM136.4 保留
SM136.5 HSC3当前计数方向位:1=增计数
SM136.6 HSC3当前值等于预设值位:1=等于
SM136.7 HSC3当前值大于预设值位:1=大于
SMB137 HSC3控制字节
SM137.0~SM137.2 保留
SM137.3 HSC3方向控制位:1=增计数
SM137.4 HSC3更新方向:1=更新方向
SM137.5 HSC3更新预设值:1=向 HSC3写新的预设值SM137.6 HSC3更新当前值:1=向 HSC3写新的初始值SM137.7 HSC3有效位:1=有效
SMD138
HSC3新的初始值,把新的当前值写入 SMD138后将SM137.6设为1,则当前值被更新
SMD142
HSC3新的预置值,把新的预设值写入 SMD142后将SM137.5设为1,则预设值被更新
HSC4
SMB146 HSC4计数器状态
SM146.0~SM146.4 保留
SM146.5 HSC4当前计数方向位:1=增计数
SM146.6 HSC4当前值等于预设值位:1=等于
SM146.7 HSC4当前值大于预设值位:1=大于
SMB147 HSC4控制字节
SM147.0 复位的有效控制位:0=高电平复位有效,1=低电平复位有效SM147.1 保留
SM147.2 正交计数器的计数速率选择:0=4x 计数速率;1=1x 速率SM147.3 HSC4方向控制位:1=增计数
SM147.4 HSC4更新方向:1=更新方向
SM147.5 HSC4更新预设值:1=向 HSC4写新的预设值SM147.6 HSC4更新当前值:1=向 HSC4写新的初始值
MagicWorks PLC 编程软件用户手册
439
SM147.7 HSC4有效位:1=有效
SMD148
HSC4新的初始值,把新的当前值写入 SMD148后将SM147.6设为1,则当前值被更新
SMD152
HSC4新的预设值,把新的预设值写入 SMD152后将SM147.5设为1,则预设值被更新
HSC5
SMB156 HSC5计数器状态
SM156.0~SM156.4 保留
SM156.5 HSC5当前计数方向位:1=增计数
SM156.6 HSC5当前值等于预设值位:1=等于
SM156.7 HSC5当前值大于预设值位:1=大于
SMB157 HSC5控制字节
SM157.0~SM157.2 保留
SM157.3 HSC5方向控制位:1=增计数
SM157.4 HSC5更新方向:1=更新方向
SM157.5 HSC5更新预设值:1=向 HSC5写新的预设值SM157.6 HSC5更新当前值:1=向 HSC5写新的初始值SM157.7 HSC5有效位:1=有效
SMD158
HSC5新的初始值,把新的当前值写入 SMD158后将SM157.6设为1,则当前值被更新
SMD162
HSC5新的预置值,把新的预设值写入 SMD162后将SM157.5设为1,则预设值被更新
<注释>
1)计数器状态位仅限在执行由高速计数器事件触发的中断程序里有效。2)当您使用 HSC 外部复位中断事件时,请勿在程序里重新设置新的当前值,然后在连接于该事件的中断程序里重新使能计数器,此操作会引起严重错误。
SMB166 至 SMB185:PTO0,PTO1 包络定义表
SMB166 到 SMB194 用来显示包络步的数量和包络表的地址和 V 存储器区中表的地址。详细描述见下表:
SM 地址 功能描述
PTO0
SMB166 PTO0的包络步当前计数值
SMB167 保留
附录440
SMW168 PTO0的包络表 V 存储器地址(从 V0开始的偏移量)
SMB170 线性 PTO0状态字节
SMB171 线性 PTO0结果字节
SMD172 指定线性PTO0发生器在手动模式时产生的频率。频率是以Hz 为单位的双整型值。PTO1
SMB176 PTO1的包络步当前计数值
SMB177 保留
SMW178 PTO1的包络表 V 存储器地址(从 V0开始的偏移量)
SMB180 线性 PTO1状态字节
SMB181 线性 PTO1结果字节
SMD182 指定线性PTO1发生器在手动模式时产生的频率。频率是以Hz 为单位的双整型值。SMB200 至 SMB549:智能模块状态
SMB200 到 SMB549 预留存储智能扩展模块的信息。详细描述见下表:槽号0的
智能模块
槽号1的
智能模块
槽号2的
智能模块
槽号3的
智能模块
槽号4的
智能模块
槽号5的智
能模块
槽号6的智能模块功能描述SMB200 ~
SMB215
SMB250 ~
SMB265
SMB300 ~
SMB315
SMB350 ~
SMB365
SMB400 ~
SMB415
SMB450 ~
SMB465
SMB500 ~SMB515
模块名称(16个ASCII 字符)SMB216 ~
SMB219
SMB266 ~
SMB269
SMB316 ~
SMB319
SMB366 ~
SMB369
SMB416 ~
SMB419
SMB466 ~
SMB469
SMB516 ~SMB519
S/W修订号(4个ASCII 字符)SMW220 SMW270 SMW320 SMW370 SMW420 SMW470 SMW520 错误代码SMB222 ~
SMB249
SMB272 ~
SMB299
SMB322 ~
SMB349
SMB372 ~
SMB399
SMB422 ~
SMB449
SMB472 ~
SMB499
SMB522 ~SMB549
与特定模块类型相关的信息D 特殊存储器(SM)标志位(中型 PLC 专用)特殊存储器标志位提供了一些具有特殊功能的位,便于用户查看和控制CTH300 系列CPU的状态。特殊存储器标志位能以位、字节、字或双字使用。
容量 2K
位地址范围 SM0.0~SM549.7
字节地址范围 SMB0~SMB549
字地址范围 SMW0~SMW548
双字地址范围 SMD0~SMD546
MagicWorks PLC 编程软件用户手册
441
访问属性 支持直接访问/间接访问
保持属性 不能掉电保持
特殊寄存器定义
特殊寄存器 功能说明
SMB0 系统状态位
SM0.0 该位总是打开。
SM0.1 首次扫描周期时该位打开,一种用途是调用初始化子程序。SM0.2 如果保留性数据丢失,该位为一次扫描周期打开。该位可用作错误内存位或激活特殊启动顺序的机制。
SM0.3 从电源开启条件进入 RUN(运行)模式时,该位为一次扫描周期打开。该位可用于在启动操作之前提供机器预热时间。SM0.4 该位提供时钟脉冲,该脉冲在1分钟的周期时间内OFF(关闭)30秒,ON(打开)30秒。该位提供便于使用的延迟或1分钟时钟脉冲。SM0.5 该位提供时钟脉冲,该脉冲在1秒钟的周期时间内OFF(关闭)0.5秒,ON(打开)0.5秒。该位提供便于使用的延迟或1秒钟时钟脉冲。SM0.6 该位是扫描周期时钟,为一次扫描打开,然后为下一次扫描关闭。该位可用作扫描计数器输入。
SM0.7
该位表示【模式】开关的当前位置(关闭 =【终止】位置,打开=【运行】位置)。开关位于 RUN(运行)位置时,您可以使用该位启用自由口模式,可使用转换至【终止】位置的方法重新启用带PC/编程设备的正常通讯。
SMB1 指令执行状态位
SM1.0 当操作结果为零时,某些指令的执行打开该位。SM1.1 当溢出结果或检测到非法数字数值时,某些指令的执行打开该位。SM1.2 数学操作产生负结果时,该位打开。
SM1.3 尝试除以零时,该位打开。
SM1.4 【增加至表格】指令尝试过度填充表格时,该位打开。SM1.5 LIFO 或 FIFO 指令尝试从空表读取时,该位打开。SM1.6 尝试将非 BCD 数值转换为二进制数值时,该位打开。SM1.7 当 ASCII 数值无法转换成有效的十六进制数值时,该位打开。SMB2 自由口接收字符
SMB3 自由口校验错误
SM3.0 该位表示在端口0和端口1中出现校验错误。(0 = 无错;1 = 错误)SM3.1-3 保留




