首页 第六章_欧姆龙_PLC指令系统及编程(可编辑)

第六章_欧姆龙_PLC指令系统及编程(可编辑)

举报
开通vip

第六章_欧姆龙_PLC指令系统及编程(可编辑)第六章_欧姆龙_PLC指令系统及编程(可编辑) 第六章_欧姆龙_PLC指令系统及编程 不同区域中的MSG信息优先级别 级别 区域 最高 LR I/O ? 非I/O IR ? HR ? AR ? TC 最低 DM/*DM IORF指令 格式: IORF 97 @IORF 97 ST ST E E 其中: 操作数ST为刷新开始通道,E为结束通道,它们可以是IR、SR、HR、AR、LR、DM、*DM、#。它们的取值范围为输入/输出通道号000~019,且E不能小于ST。 功能:输入/输出刷新指令。执行条件满足时,刷...

第六章_欧姆龙_PLC指令系统及编程(可编辑)
第六章_欧姆龙_PLC指令系统及编程(可编辑) 第六章_欧姆龙_PLC指令系统及编程 不同区域中的MSG信息优先级别 级别 区域 最高 LR I/O ? 非I/O IR ? HR ? AR ? TC 最低 DM/*DM IORF指令 格式: IORF 97 @IORF 97 ST ST E E 其中: 操作数ST为刷新开始通道,E为结束通道,它们可以是IR、SR、HR、AR、LR、DM、*DM、#。它们的取值范围为输入/输出通道号000~019,且E不能小于ST。 功能:输入/输出刷新指令。执行条件满足时,刷新ST到E之间的所有I/O通道。可以用来提高系统I/O响应速度,减少控制滞后。 BCNT指令 格式: BCNT 67 @BCNT 67 N N ST ST D D 操作数N为四位BCD码通道数,可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数ST为源开始通道,操作数D为目的通道,它们可以是IR、SR、HR、AR、LR、DM、*DM。 功能:位计数指令。用于计算从ST到ST+ N-1 之间所有通道中等于1的位的个数。计算结果以BCD码的形式存放到D中。 【例2】 下面程序段是一个BCNT指令应用的例子。当20000为ON时,在HR00中存放从DM0010,DM0017共18个通道中所有数据中为1的二进制位的个数。 LD 20000 BCNT 67 #0018 DM0010 HR00 PULS指令 格式: PULS 65 PULS 65 P P C C N N 其中: 操作数P为口定义符,用来定义脉冲输出位置。P 000时为单相不带加减速脉冲输出0 01000 或单相带梯形加减速脉冲输出0 01000和01001 。P 010时为单相不带加减速脉冲输出1 01001 操作数C为脉冲形式控制字。C 000时为相对脉冲;C 001时为绝对脉冲。 P 010和C 001不用于CPM2A。 操作数N为脉冲数,可以是IR、SR、HR、AR、LR、DM、*DM。 功能:脉冲输出设置指令。用来设定SPED和ACC指令输出的脉冲数。八位BCD码脉冲数放在N和N+1通道中。N中放低四位,N+1中放高四位。取值范围是-16 777 215,16 777 215。 SPED指令 格式: SPED 65 SPED 65 P P M M F F 其中: 操作数P为输出点设定,可以取000或010。 操作数M为输出模式设定,可以取000或001。 操作数F为脉冲频率设定,四位BCD码,可以是IR、SR、HR、AR、LR、DM、*DM、#。 功能:脉冲速度设置指令。单相脉冲只能通过01000和01001两个端子输出,且同一时刻只能有一路输出。输出端子由P指定。P 000时,输出为01000;P 010时,输出为01001。 脉冲输出有两种模式。当M 000时为独立输出模式。在此模式下,用PULS指令设定输出脉冲总数,用SPED指令启动脉冲输出的开始。输出的脉冲数达到PULS指令所指定的数目时脉冲输出停止。当M 001 时为连续输出模式,在此模式下,只能通过SPED指令中的F 0000的设置或INI指令来停止脉冲输出。独立输出模式的脉冲输出一但开始就不能再用PULS指令来改变已设定的脉冲数。而连续输出模式在输出过程中可以随时使用SPED指令来改变输出频率。该频率由F的值设定。F的取值范围为0001,1000对应的输出频率是10 Hz,10 kHz CPM1A:0002,0200对应的输出频率是20 Hz,2 kHz 。 【例3】 下例为一个独立模式脉冲输出的程序段。脉冲输出由00001来启动。输出脉冲数为在DM0101和DM0100中,输出脉冲频率为100 Hz。 LD 00001 @PULS 65 000 000 DM0100 LD 00001 @SPED 64 000 000 #0010 STEP和SNXT 指令 格式: STEP 08 B SNXT 09 B 其中: 操作数B为控制位,可以是IR、HR、AR、LR。 功能:STEP为步进定义指令。SNXT为步进启动指令。STEP和SNXT指令总是一起使用,用来在大型程序中定义一个程序段,每个程序段称为一步。CPU按先后顺序执行每一步。 SNXT指令用来启动一个编号为B的步。STEP指令用来定义一个编号为B步的开始,此时的STEP 指令不需要任何执行条件。这条指令后面就是被定义的步的程序段。在每步的最后用一条带执行条件的SNXT指令的功能是定义步的结束,同时也作为编号为B的下一步的启动条件。这时的执行条件被称为转步条件。一个不带操作数的STEP指令表示所有步的结束。在它之前的SNXT指令中的B,是一个虚操作数,无实际意义。所以可以使用任何 一个未被使用过的有效数据。步进程序中其他指令中B的取值要求是:按先后顺序排列的连续通道号。 转步复位结果 定时器 SV IR、HR、AR、LR OFF 计数器及移位寄存器 保持不变 由SET、RESET、KEEP指令控制的位 保持不变 【例4】 在下面程序段中,将生产过程分为A、B、C三部分。其中00001为A过程的启动输入。00002为B过程的启动输入。00003和00004分别为A、B过程向C过程的转步条件。 步进指令应用例梯形图 PID指令 格式: PID -- IW P1 OW 其中: 操作数IW为输入数据通道,可以是IR、SR、HR、AR、LR、DM。 操作数P1为第一参数通道,可以是IR、SR、HR、LR、DM。参数的定 操作数OW为输出数据通道,可以是IR、SR、HR、AR、LR、DM。 功能:PID控制指令。条件满足时按照给定的参数执行PID控制操作。运算的输入值PV来自IW,输出的操作值MV送OW。 PID指令参数定义 参数 内容 说明 P1 给定值 SV 二进制数,位数由P1+6设定 P1+1 比例带 P BCD码0001,9999 表示0.1%,999.9% P1+2 积分时间/采样周期 TiK/τ BCD码0001,8191 取0000时无积分作用 P1+3 微分时间/采样周期 TdK/τ BCD码0001,8191 取0000时无微分作用 P1+4 采样时间 τ BCD码0001,1023 表示0.1,102.3 s P1+5 0,3位 操作方向定义 取1为正作用,PV SV时MV增加 取1为反作用,PV SV时MV减少 P1+5 4,15位 输入滤波系数 α BCD码100,199 对应系数0.00,0.99 α越小滤波作用越弱 取000时α为默认值0.65 P1+6 0,7位 输出范围 0,8 对应输出二进制位数 8,16位 P1+6 8,15位 输入范围 0,8 对应输入二进制位数8,16位 P1+7,P1+32 工作区 系统使用 说明:PID指令是按照可编程控制器的CPU周期执行的,所以如果其采样周期大于CPU周期,PID运算将会等待到该采样周期完成后的下一CPU周期完成。PID控制运算要使用从P1,P1+32共33个通道,用户在编程时将不能在使用该33个通道。在下列情况下不可以使用PID指令:中断程序中、互锁程序中、跳转程序中、步进程序中、子程序中。标志CY为ON,表示系统正在进行PID处理;CY为OFF,表示系统采样周期还没有结束。 SRCH指令 格式: SRCH -- @SRCH -- N N R1 R1 C C STIM指令 格式: STIM 69 @STIM 69 C1 C1 C2 C2 C3 C3 STIM指令控制字 C1 C2 C2+1 C3 000 启动单次中断模式 设定值 计时时间间隔 中断子程序号 003 启动重复中断模式 设定值 计时时间间隔 中断子程序号 006 读出当前值 已计数次数 计时时间间隔 前次计数到当前时刻时间 010 停止定时 固定为000 ? 固定为000 功能:间隔定时器中断指令。提供高速的高精度中断处理。定时设定值由C2指定,数值范围为BCD码0000,9999。计时时间间隔由C2+1指定。当设定值为立即数时 BCD:0000,9999 ,时间间隔固定为1 ms。当设定值为通道号时,时间间隔由C2+1中的数据 BCD:0005,0320 确定,对应间隔0.5,32 ms,即实际定时时间T C2中的数据 × C2+1中的数据 × 0.1 ms。 间隔定时器有两种工作模式,单次工作模式时只执行一次定时中断;重复工作模式时循环执行周期性的定时中断,直至用新的STIM指令停止。 STIM指令应用例梯形图 4.12 高速计数器应用指令 1(CPM2A高速计数器的几种输入模式 CPM1A只有前两种 1 递增模式:脉冲信号输入端子00000;复位信号输入端子00002。计数器对脉冲输入的响应为递增计数。计数范围0,16 777 215 CPM1A:0,65 535 ;最高计数频率20 kHz CPM1A:5 kHz 。 2 相位模式:脉冲信号A输入端子00000;脉冲信号B输入端子00001;复位信号Z输入端子00002。计数器根据脉冲A、B的相位关系进行加一或减一操作。若A相超前B相1/4,进行加一操作;若B相超前A相1/4,进行减一操作。计数范围是-8 388 608,8 388 607 CPM1A:-32 768,32 767 。最高计数频率5 kHz CPM1A:2.5 kHz 。相位模式非常适用于可编程控制器与三相输出的脉冲编码器相连接的场合。 3 脉冲/方向模式:脉冲信号输入端子00001,方向信号输入端子00000。根据方向的ON或OFF状态,脉冲分别对计数器进行加/减操作。计数范围是-8 388 608,8 388 607。最高计数频率5 kHz。 4 加/减模式:加脉冲输入端子00000,减脉冲输入端子00001。根据两脉冲的输入进行加/减计数。计数范围是-8 388 608,8 388 607。最高计数频率5 kHz。 2. 高速计数器的几种复位方式 1 软件复位:复位条件是25200置ON。 2 软件加硬件复位:复位条件是25200和 00002同时为ON。 系统电源上电时高速计数器自动复位。 高速计数器在使用前必须经过输入模式的设定。模式设定通道在DM6642,设定值的具体定。工作中高速计数器的PV值的低4位和高4位分别放在248和249中。 高速计数器工作模式设定定义 3. 高速计数器的两种中断功能 1 目标值比较中断:比较条件是1,16个目标值。当PV值与目标值相等时产生相应的中断。 2 区域比较中断:比较条件是8对上下限组成的8个区域。当PV值进入其中某个比较区域时,产生相应的中断。 3. 高速计数器的两种中断功能 1 目标值比较中断:比较条件是1,16个目标值。当PV值与目标值相等时产生相应的中断。 2 区域比较中断:比较条件是8对上下限组成的8个区域。当PV值进入其中某个比较区域时,产生相应的中断。 CTBL指令 格式: CTBL 63 @CTBL 63 P P M M S S 其中: 操作数P为定义符,取000。 操作数M为控制字,其定。 操作数S为比较表开始通道,它可以是IR、SR、HR、AR、LR、DM、*DM。 CTBL指令控制字定义 M 定义功能 000 登记一个目标值比较表,并启动比较。 001 登记一个区域比较表,并启动比较。 002 登记一个目标值比较表,用INI启动比较。 003 登记一个区域比较表,用INI启动比较。 功能:比较表登记指令。当执行条件满足时,登记一个高速计数器的比较表。具体功能由指令中的控制字说明。因此在使用中可以根据需要将高速计数器立即启动,也可以将其定义为用INI指令启动。 被登记的比较表应构。其中图 a 为目标 值表,它包括有16个目标值及相应的中断子程序号。CPM2A的高速计数器比较时要和所有的目标值进行比较,而CPM1A只能找到第一个符合条件的目标值。图 b 为区域表,它包括8个区域及相应的子程序号。使用时区域比较表中的区域必须满8个。不足8个时,应设定其余的子程序号为FFFF。在区域比较时还可以在AR1100,AR1107中找到比较结果。例如,当前值PV落在区域1内时,AR1100被置ON;落在区域2内时,AR1101被置ON。依次类推。 高速计数器比较表 结构示意图 INI指令 格式: INI 61 @INI 61 P P C C P1 P1 a INI指令定义符定义 P 功 能 000 定义高速计数输入 00000、00001、00002 单相不带加减速输出0 01000或01001 单相不带梯形加减速输出0 01000 010 定义单相不带加减速输出0 01001 100 定义计数器模式中断输入0 00003 101 定义计数器模式中断输入1 00004 102 定义计数器模式中断输入2 00005 103 定义计数器模式中断输入3 00006 b INI指令控制字定义 C P1 功能 000 000 启动CTBL表的比较 001 000 停止CTBL表的比较 002 新的PV 改变PV值或中断输入 003 000 停止脉冲输 出 004 新的PV 改变脉冲输出PV值 005 000 停止脉冲输出 PRV指令 格式: PRV 62 @PRV 62 P P C C D D 其中: 操作数P为定义符,用来指定要控 制的高速计数器或脉冲输出。 P 000,高速计数器输入 00000,00001和00002 ;同步脉冲控制输入频率 00000,00001和00002 ;单相不带加减速输出0 01000和01001 ;单相带梯形加减速输出0 01000 或同步脉冲输出0 01000,01001 。 P 010,单相不带加减速输出1 01001 或同步脉冲输出1 01001 。 P 100,计数器模式中断输入0 00003 。 P 101,计数器模式中断输入1 00004 。 P 102,计数器模式中断输入2 00005 。 P 103,计数器模式中断输入3 00006 。 对CPM1A,P只取000。 操作数C为控制字,用来确定指令存取数据的形式。 C 000,读高速计数器或中断输入的PV值或同步脉冲的输入频率。 C 001,读高速计数器或同步脉冲的输出状态。 C 002,读范围比较的结果。 C 003,读脉冲输出的PV值。 对CPM1A,C不能取003。 操作数D为目的通道,它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:读出当前值指令。当执行条件满足时,根据P和C的定义读出相应的值送入目的通道。 读高速计数器PV时,结果为8位BCD码,其中低4位送D,高4位送D+1。在相位模式、脉冲/方向模式和加/减模式时,结果数据的最高位用十六进制数F作为负符号位。 读中断输入PV时,结果为4位十六进制数,被送入D。 读状态时,状态结果送D。 PRV指令中的状态定定义 P 状态字各位 定义 000 第0位 高速计数器 0:比较停止;1:正在比较 第1位 高速计数器 0:正常;1:溢出 第2,4位 000 第5位 脉冲输出0的输出脉冲数 0:未指定;1:已指定 第6位 脉冲输出0 0:未完成;1:已完成 第7位 脉冲输出0 0:停止状态;1:输出状态 第8 位 脉冲输出0和PV 0:正常;1:溢出 第9位 脉冲输出 0:常数; 1:加速或减速 第10位,15位 000000 010 第0,4位 00000 第5 位 脉冲输出1和输出脉冲数 0:未指定;1:已指定 第6位 脉冲 输出1 0:未完成;1:已完成 第7位 脉冲输出1 0:停止状态;1: 输出状态 第8位 脉冲输出1的PV 0:正常;1:输出 第9位 脉 冲输出1 0:常数;1:加速或减速 第10位,15位 000 读 范围比较结果时,得到用PV值与CTBL指定的8个范围比较的结果送 D。D中的第0位到第7位分别对应范围1到范围8。0表示不在范围 内;1表示在范围内。 读脉冲输出PV时得到的8位PV值 送D和D+1。由于PV值的范围是-1 677 215,1 677 215,D+1中数 据结果的最高位被用做符号位,该位为1时数据为负数。 【例】 在下面程序段中,首先设定高速计数器的工作模式、比较目 标的数量及比较目标值。当程序执行到CTBL指令时将会登录目标值 比较表并启动比较。比较过程中一但计数器计数值到达给定目标时, 系统会自动执行相应的中断子程序。 LD 25315 MOV 21 #0114 DM6642 LD 25315 MOV 21 #0002 DM0000 LD 25315 MOV 21 #5000 DM0001 LD 25315 MOV 21 #0000 DM0002 LD 25315 MOV 21 #00010 DM0003 LD 25315 MOV 21 #8000 DM0004 LD 25315 MOV 21 #0000 DM0005 LD 25315 MOV 21 #0011 DM0006 LD 25315 CTBL 63 000 000 DM0000 …… 4.13 其他特殊应用指令 FAL和FALS指令 格式: FAL 06 N1 @FAL 06 N1 FALS 07 N2 其中: 操作数N1、N2为故障代码,取值范围:N1为十进制数00,99,N2十进制数为01,99。 功 能:FAL为故障报警指令。当执行条件满足时,FAL指令将代码N1送 FAL输出区 SR25300,SR25307 中。此时用户程序还将继续运行,但 CPU面板上的ERROR指示灯会开始闪烁。使用特别故障代码00可以 清零FAL输出区和MSG显示信息,同时使ERROR显示灯熄灭。 FALS为严重故障报警指令。当执行条件满足时,FALS指令将代码N2送FAL输出区中。此时用户程序将停止运行,所有输出复位,CPU面 板上的ERROR指示灯会开始闪烁,RUN指示灯熄灭。要清除FALS故 障,必须首先清除故障原因,然后通过工作方式的转换或重新开机的办法来实现。 【例1】 在下面程序段中,当00000和00001中有一个为ON时,都会引起系统故障报警操作。故00000和00001应该分别为两个系统故障的输入信号。当两个故障输入都为OFF时,程序段能够自动清除故障状态。序段的梯形图。 LD 00000 OR 00001 FAL 06 01 LD NOT 00000 AND NOT 00001 FAL 06 00 FAL指令应用例梯形 图 MAG指令 格式: MAG 46 @MAG 46 S S 其中: 操作数S为信息开始通道, 可以是IR、SR、HR、AR、LR、DM、*DM。 功能:信息显示 指令。当执行条件满足时,从S开始读取最多16个ASCII码并在编 程器上显示相应的字符。从S开始到S+7通道,每个通道存放着两个 显示字符,其中低8位的字符显示在高8位字符之前。当显示字符少 于16个时第一个不为ASCII码的数据位即为显示字符串的终止位。 当MSG指令操作执行时,其信息缓冲区最多可以读入3个MSG信息。 进入缓冲区的MSG信息,按照先进先出的缓冲原则,每次显示1个。 在每次扫描循环中若有多于3个的MSG信息,则要按照优先级别的区 别,首先选择优先权高的信息。同一区域中的MSG信息优先权为地址 小的级别高。不同区域中的优先权区。 【例3】 设有数 据 200 1111 201 2222 则下面程序段在输入条件满 足时执行双字BCD码除法操作,运算结果为: HR00 0505 HR01 1111 HR03 0001 HR04 0000 即22221111?2 11110505……1 操 作结果同时置标志25506为OFF。 LD 00001 @DIVL 57 200 #0002 HR00 INC和 DEC指令 格式: INC 38 @INC 38 S S DEC 39 @DEC 39 S S 其中: 操作数S为源通道,可以是IR、SR、 HR、AR、LR、DM、*DM。 功能:INC为加一指令。进行加 一操作时,将S中的BCD码做十进制加一,结果送回S;DEC为减一 指令。进行减一操作时,将S中的BCD码做十进制减一,结果送回S。 说明:INC和DEC指令的执行不影响进位标志,但要影响相等标志。 ADB、SBB、MLB和DVB指令 格式: ADB 50 @ADB 50 S1 S1 S2 S2 D D 其中: 操作数S1为被加数,S2为加数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 SBB 51 @SBB 51 S1 S1 S2 S2 D D 其中: 操作数S1为被减数,S2为减数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 MLB 52 @MLB 52 S1 S1 S2 S2 D D 操作数S1为被乘数,S2为乘数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 DVB 53 @DVB 53 S1 S1 S2 S2 D D 操作数S1为被除数,S2为除数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:ADB为二进制加法指令,执行二进制加法操作时将S1和S2的内容带进位位一起做二进制加。加出的和送D,并按运算结果置进位标志位和相等标志位。SBB为二进制减法指令,执行二进制减法操作时将S1和S2的内容带进位位一起 做二进制减。减得的差送D,并按运算结果置进位标志位和相等标志位。若进位标志被置ON,说明减得的差为负数,此时D中的运算结果为二进制补码。MLB为二进制乘法指令,执行二进制乘法操作时将S1和S2的内容做二进制乘。乘出的积送D。其中积的低四位送D,高四位送D+1。运算结果不影响进位标志位。DVB为二进制除指令,执行二进制除法操作时将S1的内容除以S2。除出的结果送D。其中商送D,余数送D+1。运算结果不影响进位标志位。 【例4】 设下面程序段执行之前有源数据: 200 7C23 则程序段执行一次后有目的数据: HR00 7D19 LD 00001 ADB 50 200 #00F6 HR00 COM、ANDW、 ORW、XORW和XNRW指令 格式: COM 29 @COM 29 S S ANDW 34 @ANDW 34 S1 S1 S2 S2 D D ORW 35 @ORW 35 S1 S1 S2 S2 D D XORW 36 @XORW 36 S1 S1 S2 S2 D D XNRW 37 @XNRW 37 S1 S1 S2 S2 D D 其中: 操作数S为源通道,它可以是IR、SR、HR、AR、LR、DM、*DM。 操作数S1为源通道1,S2为源通道2。它们可以是IR、SR、HR、AR、LR、DM、 *DM、#。 操作数D为目的通道,它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:COM为字求反指令。字求反操作时,将S中的数据按位求反后结果仍送回S;ANDW为字逻辑与运算指令。字逻辑与运算时,将S1和S2中的数据按位进行逻辑与运算,结果送D中;ORW为字逻辑或 运算指令。字逻辑或运算时,将S1和S2中的数据按位进行逻辑或运算,结果送D中;XORW为字逻辑异或运算指令。字逻辑异或运算时,将S1和S2中的数据按位进行逻辑异或运算,结果送D中;XNRW为 字逻辑同或运算指令。字逻辑同或运算时,将S1和S2中的数据按位 进行逻辑同或运算,结果送D中。 说明:上述所有逻辑运 算指令的执行不影响进位标志,但要影响相等标志。 【例5】 下面程序段执行时,只要输入00001由OFF变为ON,就要将HR00中的内容求反一次。若设HR00中有数据6924,则求反指令执行一次后HR00的数据将会成为96DB。 LD 00001 @COM 29 HR00 【例6】 下面程序段中使用00001为运算 选择开关。当选择开关为ON时,将HR00高八位全部置为ON,低八 位状态保持不变,运算结果送HR01。当选择开关为OFF时,将HR00高八位全部置为OFF,低八位状态保持不变,运算结果送HR02。序段的梯形图。 ANDW和ORW指令应用例梯形图 LD 00001 @ORW 35 HR00 #FF00 HR01 LD NOT 00001 @ANDW 34 HR00 #00FF HR02 4.11 子程序和中断控制类应用指令 SBS、SBN和RET指令 格式: SBS 91 N @SBS 91 N SBN 92 N RET 93 其 中: 操作数N为子程序号,取值范围为十进制数000,049。 功能:SBS为子程序调用指令。执行子程序调用操作时,调用由N指定的子程序段。当子程序执行结束后,程序返回到调用处,从SBS的下一条指令开始继续执行。所有被调用的子程序需经过定义。SBN为子程序定义指令,用在每段子程序定义的开始,并为该段子程序赋予编号N。RET为子程序返回指令,用在每段子程序定义的结束。SBN和RET指令应该两两对应使用。SBN和RET指令不需要任何执行条件,即在梯形图上它们可以和左端母线直接相连。 说明:在程序中子程序可以嵌套使用,但嵌套的级数不能超过六个。子程序定义的位置应该在主程序之后,END指令之前。 【例1】 子程序应用的例子,程序段中调用子程序的条件是00000为ON。子程序内容执行结束后,系统会自动返回到主程序。 子程序应用例梯形图 MCRO指令 格式: MCRO 99 @MCRO 99 N N I1 I1 O1 O1 其中: 操作数N为子程序号,取值范围为十进制数000,049。 操作数I1为第一个输入字,操作数O1为第一个输出字。它们可以是IR、SR、HR、AR、LR、DM、*DM。 功能:宏指令。用来定义那些结构相同但操作数不同的子程序。 系统将8个通道分配给宏使用,其中SR232,SR235用于输入字,SR236,SR239用于输出字。用户可以用上述通道定义子程序。当宏条件满足时,系统就会用对应的输入/输出代替定义中的输入/输出。从而简化了编程的过程。在大量使用同一结构但不同数据的程序段中,使用宏显得十分有效。 【例2】 令使用的例子。其中图 a 为使用宏的程序段的梯形图。图 b 为不使用宏的程序段的梯形图。两程序段的功能完全相同。 MCRO指令应用例梯形图 INT指令 格式: INT 89 @INT 89 CC CC 000 000 D D 其中: 操作数CC为中断控制码,根据不同的情况它可以取000、001、002、003、100或200。 操作数D为中断控制数据,它可以是IR、SR、HR、AR、LR、DM、*DM、#。 INT指令操作数定义 功能:中断控制指令。用来设置系统中断功能及状态。CPM2A的中断有外部输入中断,外部中断的计数模式、间隔定时器中断和高速计数器中断等几类,其中外部输入中断的优先级别最高。在外部输入中断中以中断0的优先级别最高。 外部输入中断是指由系统规定的中断输入端子00003,00006上的输入脉冲或计数所产生的中断。其模式分别称为输入中断模式和计数中断模式。这种外部中断所调用的中断子程序的编号是固定的,中断输入端子00003,00006分别对应子程序000,003。中断子程序的定义和一般子程序的定义完全相同。输入端子中断功能的设定,应于中断使用之前在DM6628中设定。 外部输入中断端子设定数据定义 0,3位 输入中断3 00003 2:设定为快速响应输入端子 1:设定为中断输入端子 0:设定为普通输入端子 4,7位 输入中断2 00004 8,11位 输入中断1 00005 12,15位 输入中断0 00006 【例3】 下面程序段是一个外部输入中断模式的举例。在该程序段运行前应该先设法将DM6628置为0001, 即设定输入端子00003为中断输入。当程序段执行时,每当00003输 入为ON时,就会产生中断,调用子程序000。 输入中断模式应用 例梯形图 LD 25315 @INT 89 000 000 #000E …… SBN 92 000 …… RET 93 …… 【例4】 下面程序段是一个 外部输入中断模式的举例。系统在240,243和244,247通道中分别 对应中断0和中断3。设有计数器设定值和当前值加一数据寄存器。 计数方式为减一计数。当前值到0000时计数到,即产生中断。用户 可通过更新设定值的操作来启动下一次计数。例中的计数值为A,设 定值用MOV指令置入,更新操作由INT指令完成。序段的梯形图。 计 数中断模式应用例梯形图 LD 25315 MOV 21 #000A 240 INT 89 003 000 #000E …… SBN 92 000 …… RET 93 【例3】 下面程序段在条件满足时执行块置数操作。操作结果是将由HR00到 HR11之间的所有通道置为FFFF。 LD 00000 AND 00001 @BSET 71 #FFFF HR00 HR11 XCHG指令 格式: XCHG 73 @XCHG 73 E1 E1 E2 E2 其中: 操作数E1为交换数据1,操作数E2为交换数据2。它们可以是IR、 SR、HR、AR、LR、DM、*DM。 功能:数据交换指令。执行数 据交换时,将E1和E2两个通道的数据进行交换。 【例4】 下面程序段在执行条件满足时,将两指定通道中的数据交换。 LD 00000 OR 00001 @XCHG 73 200 210 DIST指令 格式: DIST 80 @DIST 80 S S DBs DBs C C 其中: 操作数S为源数据,可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数DBs为目的基准通道,可以是IR、SR、HR、AR、LR、DM、*DM。 操作数C为4位BCD码组成的控制字,可以是IR、SR、HR、AR、LR、DM、*DM、#。 功能:单字分配指令。当C中的BCD码最高位小于8时,DIST执行单字分配操作,将S的数据送到DBs+C所指定的通道中去。当C的BCD码最高位等于9时,DIST执行S的数据进栈操作。由C中BCD码的低三位指定堆栈的长度。用DBs作为堆栈指针。 【例5】 当下面程序段中的DIST指令执行条件满足时,执行进栈操作。执行一次的结果置DM0000为FFFF。执行两次 的结果置DM0001为FFFF。 LD 00001 AND 00002 @DIST 80 #FFFF DM0000 #9002 COLL指令 格式: COLL 81 @COLL 81 SBs SBs C C D D 其中: 操作数SBs为源基准通道,操作数D为目的基准通道,它们可以是IR、SR、HR、AR、LR、DM、*DM。 操作数C为4位BCD码组成的控制字,可以是IR、SR、HR、AR、LR、DM、*DM、#。 功 能:数据调用指令。它是DIST指令的反操作指令。 若C中的BCD码在 0000,6655之间,指令执行条件满足时完成数据调用操作,将SBs+C中的内容送到D。 若C中的BCD码在9000,9999之间,指令执行条件满足时完成先入先出的出栈操作。 若C中的BCD码在8000,8999之间,指令执行条件满足时完成后入先出的出栈操作。 出栈操作时,由C中BCD码的低三位指定堆栈的长度;用DBs作为堆栈指针。 MOVB和MOVD指令 格式: MOVB 82 @ MOVB 82 S S C C D D MOVD 83 @ MOVD 83 S S C C D D 其中: 操作数S为源数据,可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数C为控制字,可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道,可以是IR、SR、HR、AR、LR、DM、*DM。 功能:MOVB为位传送指令。执行位传送时可以将S中指定的二进制位传送到D的指定位上。S和D中的位的指定由C来实现。MOVB指令中的控制字C的定义。 MOVB指令控制字定义 MOVD指令控制字定义 【例6】 下面程序段在00001变化的上升沿时执行位传送操作。操作的结果是将HR0115置ON。 LD 00001 @MOVB 82 #FF00 #FF00 HR01 4.10 数据运算类应用指令 STC和CLC指令 格式: STC 40 @STC 40 CLC 41 @CLC 41 功能:STC为置进位位指令。 执行条件满足时 执行置进位位操作,将进位标志位25504置ON。 CLC为清进位位指令。 执行条件满足时执行清进位位操作,将进位标志位 25504置OFF。 ADD和SUB指令 格式: ADD 30 @ADD 30 S1 S1 S2 S2 D D 其中: 操作数S1为被加数,S2为加数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 SUB 31 @SUB 31 S1 S1 S2 S2 D D 其中: 操作数S1为被减数,S2为减数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:ADD为BCD码加法指令,执行加法操作时将S1和S2的内容带进位位一起做十进制加。加出的结果送D,并按运算结果置进位标志位和相等位;SUB为BCD码减法指令,执行减法操作时将S1和S2的内容带进位位一起做十进制减。减出的结果送D,并按运算结果置进位标志位和相等位。 【例1】 下面程序段中以00001为加法操作的条件。在执行加法指令前一般应该先清进位位。加法执行后的和数送DM1000。执行后的进位和相等状态送010通道输出。01000置ON表示运算结果有进位。01001置ON表示运算结果等于0000。序段的梯形图。 ADD指令应用例梯形图 LD 00001 @CLC 41 LD 00001 @ADD 30 HR00 #0002 DM1000 LD 25504 OUT 01000 LD 25506 OUT 01001 ADDL和 SUBL指令 格式: ADDL 54 @ADDL 54 S1 S1 S2 S2 D D 其中: 操作数S1为被加数,S2为加数。它们可以是IR、SR、HR、AR、LR、DM、*DM。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 SUBL 55 @SUBL 55 S1 S1 S2 S2 D D 其中: 操作数S1为被减数,S2为减数。它们可以是IR、SR、HR、AR、LR、DM、*DM。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:ADDL为双字BCD码加法指令。双字加法是指将S1+1和S1组成的双字与S2+1和S2组成的双字带进位位做十进制加法。加出的结果送D+1和D组成的双字。 SUBL为双字BCD码减法指令。双字减法是指将S1+1和S1组成的双字与S2+1和S2组成的双字带进位位做十进制减法。减出的结果送D+1和D组成的双字。 这里所说的双字是指由两个通道组成的数据。操作数指出的通道内为低四位,操作数加一通道内为高四位。 【例2】 下面程序段是一个用ADDL指令完成更多位加法的例子。两次使用ADDL实现了4 个通道16位十进制数相加的运算。序段的梯形图。 LD 00001 @CLC 41 LD 00001 @ADDL 54 HR00 200 HR06 LD 00001 @ADDL 54 HR02 202 HR08 设程序段执行前相应源通道中的数据为: HR00 1212 HR01 3434 HR02 5656 HR03 7878 200 7878 201 5656 202 3434 203 1212 则程序段执行一次后目的通道有结果数据: HR06 9090 HR07 9090 HR08 9090 HR09 9090 由于最后的 和不等于0,操作结果同时置标志25506为OFF,即 7878565634341212+1XXXXXXXXXX67878 9090909090909090 ADDL指令应用例梯形图 MUL和DIV指令 格式: MUL 32 @MUL 32 S1 S1 S2 S2 D D 其中: 操作数S1为被乘数,S2为乘数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 DIV 33 @DIV 33 S1 S1 S2 S2 D D 操作数S1为被除数,S2为除数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它 可以是IR、SR、HR、AR、LR、DM、*DM。 功能:MUL为BCD码乘法指令。 执行乘法操作时将S1和S2的数据相乘。乘 出的积低四位送D,高四位送D+1。若积等于0000则置相等标志位为ON。 DIV为BCD码除法指令。执行除法操作时将S1的数 据除以和S2的数据。除出的商送D,余数送D+1。若商等于0000则 置相等标志位为ON。 MULL和DIVL指令 格式: MULL 56 @MULL 56 S1 S1 S2 S2 D D 其中: 操作数S1为被乘数,S2为乘数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 DIVL 57 @DIVL 57 S1 S1 S2 S2 D D 操作数S1为被除数,S2为除数。它们可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数D为目的通道。它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:MULL为双字BCD码乘法指令。执行双字乘法操作时将S1+1和S1组成的双字与S2+1和S2组成的双字相乘。乘出的积送D+3,D+2,D+1,D组成的数据通道中。若积等于0则置相等标志位为ON。 DIVL为双字BCD码除法指令。执行除法操作时将S1+1和S1组成的双字除以S2+1和S2组成的双字。除出的商送D+1,D。余数送D+3,D+2。若商等于0则置相等标志位为ON。 【例1】 在下面的指令中,使用了SR中的1秒时钟脉冲 25502 作为移位脉冲,实现的是每秒移位一次的操作。参加移位的数据为由200,202三个通道组成的48位二进制数。 LD 00001 LD 25502 LD 00002 SFT 10 200 202 SFTR指令 格式: SFTR 84 @SFTR 84 C C ST ST E E 操作数C为控制字,它可以是IR、SR、HR、AR、LR、DM、*DM、#。 操作数ST为开始通道。操作数E为结束通道。它们可以是IR、SR、HR、AR、LR、DM、*DM。ST不能大于E,且二者必须是在同一区域内。 功能:可逆移位寄存器指令。指令中的控制字C的定。 当执行条件满足时,根据C的规定执行二进制数据的左移或右移操作。C中的R为复位操作标志,SP为移位操作标志。移位数据包括进位标 志 25504 在内。即左移时数据通道中的最高位移入进位标志,数据 通道的最低位移入C中的输入数据IN。右移时输入数据IN移入数据通道最高位,数据通道最低位移入进位标志。复位操作时,数据通道连同进位标志一并置0。 SFTR指令控制字定义 【例2】 设有如下的程序段: LD 00000 OUT 20012 LD 00001 OUT 20013 LD 00002 OUT 20014 LD 00003 OUT 20015 LD 00004 @SFTR 84 200 DM0010 DM0011 SFTR指令应用例梯形图 WSFT指令 格式: WSFT 16 @ WSFT 16 ST ST E E 操作数ST为开 始通道。操作数E为结束通道。它们可以是IR、SR、HR、AR、LR、 DM、*DM。ST不能大于E,且二者必须是在同一区域内。 功能:字移位指令。实现每次一个通道 16位二进制数 数据的左移。 最低位置0000,最高位移出丢失。 【例3】 设有如下的WSFT指令: LD 00000 WSFT 16 AR00 AR02 又设指令执行前,数据通道的内容为: AR00 1234 AR01 4567 AR02 789A 则指令执行一次后,数据通道的内容改变为:AR00 0000 AR01 1234 AR02 4567 WSFT指令应 用例梯形图 ASL和ASR指令 格式: ASL 25 @ASL 25 CH CH ASR 26 @ASR 26 CH CH 其中: 操作数CH为移位通道,它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:ASL为算术左移指令,执行算术左移操作时,将CH中的16位二进制数据顺序左移一位,最高位移入进位标志,最低位补入一个0。ASR为算术右移指令,执行算术右移操作时,将CH中的16位二进制数据顺序右移一位,最低位移入进位标志,最高位补入一个0。 【例4】 设原操作数200 6786,则下面指令执行一次后得200 CF0C。 LD 00000 @ASL 25 200 说明:当CH中的数据为0000时,系统置相等标志25506为ON。 ROL和ROR指令 格式: ROL 25 @ROL 25 CH CH ROR 26 @ROR 26 CH CH 其中: 操作数CH为移位通道,它可以是IR、SR、HR、AR、LR、DM、*DM。 功能:ROL为循环左移指令,执行循环左移操作时,将CH中的16位数据连同进位位循环左移一位,CH中的最高位移入进位标志,原进位位的值移入CH的最低位。ROR为循环右移指令,执行循环右移操作时,将CH中的16位数据连同进位位循环右移一位,CH中的最低位移入进位标志,原进位位的值移入CH的最高位。 【例5】 设原操作数200 6786,且25504 1。则下面指令执行一次后得200 CF0D,25504 0。 LD 00000 @ROL 27 200 说明:当CH中 的数据为0000时,系统置相等标志25506为ON。 SLD和SRD指令 格式: SLD 74 @SLD 74 ST ST E E SRD 75 @SRD 75 ST ST E E 其中: 操作数ST为开始通道。操作数E为结束通道。它们可以是IR、SR、 HR、AR、LR、DM、*DM。ST不能大于E,且二者必须是在同一区域内。 功能:SLD为十六进制数左移指令。左移时每位十六进制顺序左移一 位,最高一位数移出丢失。最低位补入数字0。SRD为十六进制数右 移指令。右移时每位十六进制顺序右移一位,最低一位数移出丢失。 最高位补入数字0。 【例6】 设指令执行前有数据 200 6786 201 CF0D 则下面指令执行一次后的数据为 200 7860 201 F0D6 LD 00000 SLD 74 200 201 ASFT指令 格式: ASFT 17 @ ASFT 17 C C ST ST E E 其中: 操作数C为控制字,它可以是 IR、SR、HR、AR、LR、DM、*DM、#。 操作数ST为开始通道。 操作数E为结束通道。它们可以是IR、SR、HR、AR、LR、DM、*DM、 #。ST不能大于E,且二者必须是在同一区域内。 ASFT指令控制 字定义 【例7】 设有数据通,表内的数值是下面指令执行 前和每执行一次后通道内数据的变化情况。可见5次移位的最后结果 是将所有的非零数据集中到了地址的低端,但其顺序不变。序段的梯 形图。 LD 00000 ASFT 17 #6000 HR00 HR08 ASFT指令执行例数据变化情况 通道 执行前 执行2次 执行3次 执行4次 执行4次 执行5次 HR00 1111 1111 1111 1111 1111 1111 HR01 0000 0000 2222 2222 2222 2222 HR02 0000 2222 0000 3333 3333 3333 HR03 2222 0000 3333 0000 4444 4444 HR04 3333 3333 0000 4444 0000 5555 HR05 0000 4444 4444 0000 5555 0000 HR06 4444 0000 5555 5555 0000 0000 HR07 0000 5555 0000 0000 0000 0000 HR08 5555 0000 0000 0000 0000 0000 ASFT指令应用例梯 形图 4.9 数据传送类应用指令 MOV和MVN指令 格式: MOV 21 @MOV 21 S S D D MVN 22 @MVN 22 S S D D 其中: 操作数 S为源通道,可以是IR、SR、HR、AR、LR、DM、*DM、#。 操 作数D为目的通道,可以是IR、SR、HR、AR、LR、DM、*DM。 功 能:MOV是数据传送指令。执行传送操作时将S中的数据送到D,S 中的数据不变;MVN是数据求反传送指令。执行求反传送操作时将S 中的数据求反送到D,S中的数据不变。 【例1】 下面的MVN 指令在输入00000或00001为ON时执行求反操作。操作执行的的结 果为将目的通道200置2C9E。序段的梯形图。 LD 00000 OR 00001 MVN 22 #D361 200 MVN指令应用例梯形图 XFER指令 格式: XFER 70 @ XFER 70 N N S S D D 其中: 操作数 N为4位BCD码的传送通道数,可以是IR、SR、HR、AR、LR、DM、*DM、 #。 操作数S为源数据块的开始通道地址,操作数D为目的 数据块的开始通道地址,它们可以是IR、SR、HR、AR、LR、DM、*DM。 功能:块传送指令。执行时将由S通道开始的N个连续数据传送到由 D开始的对应通道中去。 例2】 下面是一个传送20个数据的程序 段。 LD 00001 OR 00002 AND 00003 XFER 70 #0020 200 HR00 BSET指令 格式: BSET 71 @ BSET 71 S S ST ST E EC 其中: 操作数S为源数据,可以是 IR、SR、HR、AR、LR、DM、*DM、#。 操作数ST为开始通道 地址,操作数E为结束通道地址,它们可以是IR、SR、HR、AR、LR、 DM、*DM。ST不能大于E,且二者必须在同一区域内。 功能: 块置数指令。执行块置数操作时,将由ST开始到E结束的所有通道 都置为数据S。 【例1】 设指令执行前210通道中有数据 000F。当下面的BCD指令执行后,211通道被赋值0016,210通道中 数据000F不变。 LD 00005 BCD 24 210 211 MLPX和DMPX指令 格式: MLPX 76 @ MLPX 76 S S C C R R 其中: 操作数S为源通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。 操作数C为控制字,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。 操作数R为目的通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。 DMPX 77 @ DMPX 77 S S C C R R 其中: 操作数S为源通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。 操作数C为控制字,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。 操作数R为目的通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM、#。 功能:MLPX是十六进制数的译码指令。它可以按照C的规定把S中最多4位十六进制数译为十进制数,根据十进制结果将由R指定的目的通道中的对应位置为ON,而S中的内容不变。第1位数字结果影响R,第2位数字结果影响R+1,依次类推直至D+3。 MLPX指令控制字定义 DMPX指令控制字定义 【例2】 设在内部通道中有数据 200 0090 201 0001 202 0000 则当00000为ON时执行下面的十六进制编码操作指令后,编码的结果是通道202中的数据变为0400,即20209被置为ON。 LD 00000 MLPX 76 200 201 202 ASC和SDEC指令 格式: ASC 86 @ASC 86 S S C C R R SDEC 78 @ SDEC 78 S S C C R R 其中: 操作数S为源通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。 操作数C为控制字,它可以是IR、SR、AR、LR、HR、TC、DM、*DM、#。 操作数R为目的开始通道,它可以是IR、SR、AR、LR、HR、DM、*DM。 功能:ASC为ASCII码转换指令,一次可以将S中的最多4位十六进制数转换成ASCII码。转换的结果存入以R开始的目的通道中。 C指令控制字C的定义。 SDEC 指令控制字定义 【例3】 设有如下的ASC指令: LD 00001 ASC 86 009 #2010 HR00 设有数据009 0013,则在ASC指令的执行条件00001满足时,执行ASCII码转换,按照C的规定,转换的结果是HR00 31B3。 HEX指令 格式: HEX -- @HEX -- S S C C D D 其中: 操作数S为源开始通道,它可以是IR、SR、AR、LR、HR、TC、DM、#。 操作数C为控制字,它可以是IR、SR、AR、LR、HR、TC、DM、#。 操作数D为目的开始通道,它可以是IR、SR、AR、LR、HR、DM。 C由4位十六进制数组成。其中第0位指定D中的第一位数据所在的位置 0,3 ;第1位指定要转换的字节数 0:1个字节;1:2个字节;2:3个字节;3:4个字节 ;第2位指定S中的开始字节 0:低字节;1:高字节 ;第3位指定校验方式 0:无;1:偶校验;2:奇校验 。 功能:ASCII码到十六进制转换指令。执行条件满足时,把S开始的指定字节的ASCII码转换为相应的十六进制数送入D开始的目的通道 中。 SCL、SCL2和SCL3指令 格式: SCL 66 @SCL 66 S1 S1 Pi Pi R R SCL2 -- @SCL2 -- S2 S2 Pj Pj R R SCL3 -- @SCL3 -- S2 S2 Pj Pj R R 其中: 操作数S1、S2为源通道,S1可以是IR、SR、AR、LR、HR、TC、DM、#;S2可以是IR、SR、AR、LR、HR、DM。 操作数Pi、Pj为第一参数通道,Pi可以是IR、SR、AR、LR、HR、TC、DM;Pj可以是IR、SR、AR、LR、HR、DM。 操作数R为结果通道,它可以是IR、SR、AR、LR、HR、DM。 功能:SCL是十六进制到BCD码线性转换指令。 与BCD指令不同的是,SCL是按用户指定的线性关系来进行转换的。其线性关系由从Pi到Pi+1四个通道的数据给定的两点来描的。 在以BCD码为纵坐标,十六进制数为横坐标的二维空间中,Pi为点1的纵坐标值 Ay ,取值范围0000,9999;Pi+1为点1的横坐标值 Ax ,取值范围0000,FFFF;Pi+2为点2的纵坐标值 By ,取值范围0000,9999;Pi+3为点2的横坐标值,取值范围0000,FFFF。设被转换的十六进制数为S,则转换结果为:R By-[ By-Ay / Bx-Ax ]× Bx-S 。最后结果取运算结果最接近的整数。如果运算结果大于9999,则取9999;如果运算结果小于0000,则取0000。 SCL2是带符号十六进制到BCD码线性转换指令, 按照一定线性关系将4位带符号的十六进制数转换成相应的BCD码,其线性关系由用户在指令中指定的直线的斜率和x轴上的截距来描述。在Pj到Pj+2三个通道中,Pj为横坐标截距,取值范围为十六进制数8000,7FFF -32768,32767 ;Pj+1为Δx,取值范围为十六进制数8000,7FFF;Pj+2为Δy,取值范围为BCD码0000,9999。Δx/Δy就是指定的直线的斜率。设被转换的十六进制数为S,则转换结果为:R Δx/Δy × S-P1 。如果最后结果为负数,则置CY为ON;如果运算结果大于9999,则取9999;如果运算结果小于-9999,则取-9999。 SCL3是BCD码到带符号十六进制线性转换指令。按照一定线性关系将4位BCD码转换成相应的带符号的十六进制数,其线性关系由用户在指令中指定的直线的斜率和y轴上的截距来描述。在Pj到Pj+4五个通道中,Pj为纵坐标截距,取值范围为十六进制数8000,7FFF -32768,32767 ;Pj+1为Δx,取值范围为BCD码0000,9999;Pj+2为Δy,取值范围为十六进制数8000,7FFF;Pj+3为纵坐标上限值,取值范围为十六进制数8000,7FFF;Pj+3为纵坐标下限值,取值范围为十六进制数8000,7FFF。设被转换的BCD码为S,则转换结果为:R Δx/Δy × S-P1 。指令执行时若CY为ON,则源数据按负数处理,故S的实际有效范围是-9999,9999;如果运算结果大于或小于给定上下限,则最后结果取上限或下限值。 【例4】 设有如下的SCL指令: LD 25313 CLC 41 LD 00100 SCL3 -- LR02 DM0000 DM0001 并有如下数据: DM0000 0005 DM0001 0003 DM0002 0006 DM0003 07FF DM0004 F800 LR02 0100 则在程序段的执行条件00100满足后,执行结果是: DM0100 00CD CY 0 BINL和BCDL指令 格式: BINL 58 @BINL 58 S S R R BCDL 58 @BCDL 58 S S R R 其中: 操作数S为源开始通道,它可以是IR、SR、AR、TC、LR、HR、DM。 操作数R为目的开始通道,它可以是IR、SR、AR、LR、HR、DM。 功能:BINL是双字长BCD码 8位BCD,低4位在S,高4位在S+1 到二进制数转换指令;BCDL是双字长二进制数 32位,低16位在S,高16位在S+1 到BCD码转换指令。当条件满足时,将S和S+1中的双字节数据完成相应的转换,结果存入R和R+1。 SEC和HMS指令 格式: SEC -- @SEC -- S S R R 000 000 HMS -- @HMS -- S S R R 000 000 其中: 操作数S为源开始通道,它可以是IR、SR、AR、TC、LR、HR、DM,数据格式为BCD码。 操作数R为目的开始通道,它可以是IR、SR、AR、LR、HR、DM。数据格式为BCD码。 功能:SEC为小时到秒转换指令,用来将按"小时/分/秒"组成的时间值转换成以秒为单位的时间值。在源通道中的BCD码数据中,S 的前两位为分,后两位为秒;S+1的四位为小时。故可转换的最大时间值为9999小时59分59秒。转 换结果存入R和R+1中,对应的最大时间值为35 999 999秒。HMS为秒到小时转换指令,它是SEC的反操作。 例5】 设有如下的SEC指令: LD 00000 SEC -- HR12 DM0100 000 设程序段执行前有如下数据: HR12 3207 HR13 2815 它表示源时间值为2815小时32分07秒。 则程序段条件满足,执行后有结果: DM0100 5927 DM0101 1013 它表示结果时间值为10 135 927秒。 NEG指令 格式: NEG -- @NEG -- S S R R 000 000 其中: 操作数S为源通道,它可以是IR、SR、AR、TC、LR、HR、DM、#。 操作数R为目的通道,它可以是IR、SR、AR、LR、HR、DM。 功能:二进制补码转换指令,将S中的二进制数转换为二进制补码结果存入R。其操作过程与用S减0000结果送R相同。 4.8 数据移位类应用指令 SFT指令 格式: 条件IN 条件SP 条件R SET 10 ST E SFT指令有三个输入条件:IN为数据输入,SP为移位脉冲输入,R为复位输入。 操作数ST指定开始通道,操作数E指定结束通道,它们可以是IR、SR、AR、LR、HR。但是E不能大于ST,且二者必须在相同的区域内。 功能:移位操作指令。只有当条件R为OFF时才进行移位操作。所谓的移位操作是指SP输入脉冲的每个上升沿,都会使由ST和E所指定数据中的所有二进制位依次左移一位。移位后数据最高位由于移出而丢失,最低位补入IN的状态。当R为ON时进行复位操作。复位时所 有的数据位置0,IN和SP的输入无效。 其中: 操作数N为计数器TC号,取值范围为十进制数000,225 CPM/A为000,127 。操作数SV为计数器的设定值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、*DM、#,取值范围0000,9999。 CNTR在程序中有三个输入条件。ACP为加计数脉冲输入端。SCP为减计数脉冲输入端。R为复位端。 功能:可逆循环计数器指令。当R为OFF时,为计数状态。计数时每当ACP由OFF变为ON时,PV值做一次加法运算。每当SCP由OFF变为ON时,PV值做一次减法运算。当PV值加到等于SV后再有加一脉冲,CNTR的状态置ON,PV值变为0。当PV值减到0再有减一脉冲,CNTR的状态置ON,PV值被置入SV值。当R为ON时为复位状态。复位时CNTR状态为OFF,ACP和SCP脉冲不起作用。 【例4】 CNTR指令的应用。CNTR指令的程序 段如下: LD 00000 LD 00001 LD 00002 CNTR 12 126 #0100 LD CNT126 OUT 01000 由程序可知可逆计数器CNTR126的SV 100,在加一运算时,当加到PV SV,再加一,PV 0,CNTR为ON。若再加一,PV 1,CNTR为OFF。在减一运算时,当减到PV 0,再减一,PV SV,CNTR为ON。若再减一,PV SV-1,CNTR为OFF。与程序段对应的梯形图例及其相应的工作时序波。 CNTR指令应用例梯形图及工作时序波形图 定时器和计数器的扩展 6.6 数据比较类应用指令 CMP和CMPL指令 格式: CMP 20 C1 C2 CMPL 60 C1 C2 其中: 操作数C1为比较数1,操作数C2为比较数2。 CMP的两个比较数可以是IR、SR、AR、LR、HR、TC、DM、*DM、#。 CMPL的两个比较数可以是IR、SR、AR、LR、HR、TC、DM、*DM。 功能:CMP为单字比较指令,完成C1和C2 两个字的比较。CMPL为 双字比较指令,完成C1与C1+1组成的双字和C2与C2+1组成的双字 的比较。 当指令前的执行条件为ON时执行比较操作,比较 操作的结果送SR中的标志位。 若C1 C2,大于标志位 LG 25505置ON。 若C1 C2,等于标志位 EQ 25506置ON。 若 C1 C2,小于标志位 LE 25507置ON。 SR中的比较结果,可 以用做其他运算的条件。 【例1】 CMP指令的应用。CMP指令的程 序段如下: LD 00000 CMP 20 HR10 #0100 LD 00000 AND 25505 OUT 01000 LD 00000 AND 25506 OUT 01001 LD 00000 AND 25507 OUT 01002 CMP指令应用例梯形图 BCMP指令 格 式: BCMP 68 @BCMP 68 CD CD CB CB R R 其中: 操作数CD为比较数据,它可以是IR、SR、AR、LR、HR、TC、DM、*DM、 #。 操作数CB为比较数据块起始通道,它可以是IR、SR、 AR、LR、HR、TC、DM、*DM。 操作数R为比较结果通道,它 可以是IR、SR、AR、LR、HR、TC、DM、*DM。 功能:块比 较指令。用数据CD和CB开始的16个上下限数据进行比较,比较结 果送R通道。 CB通道与R位的对应关系 序号 上限 下限 R中的 对应位 1 CB CB+1 第0位 2 CB+2 CB+3 第1位 3 CB+4 CB+5 第2 位 16 CB+30 CB+31 第15位 【例2】 设以下数据存储区中的数据 值为: DM0005 0000 DM0006 0100 DM0007 0101 DM0008 0200 DM0009 0201 DM0010 0300 DM0036 1600 … 执行下边程序段: LD 20000 BCMP 68 #0210 DM0005 HR05 当 20000为ON时进行块比较操作。由于比较数据等于210,介于201和 300之间,因此,比较操作的结果是将HR05通道的第二位即HR0502置ON。 配合相应的硬件设备,BCMP指令可以用来实现运动 部件的位置控制。 TCMP指令 格式: TCMP 85 @TCMP 85 CD CD CB CB R R 其中: 操作数CD为比较数据,它可以 是IR、SR、AR、LR、HR、TC、DM、*DM、#。 操作数CB为 比较数据表起始通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。 操作数R为比较结果通道,它可以是IR、SR、AR、LR、HR、TC、DM、 *DM。 功能:表比较指令。当指令的执行条件满足时,将数 据CD与从TB开始的16个通道分别进行比较。若CD与其中的某一通 道数据相等,则置R中的相应位为ON。TCMP指令在程序中可以用来 查询某一指定数据。 【例3】 设由HR00到HR15的16个通 道中只有HR06和HR07等于100,则表比较指令执行后,01006和01007为ON。 LD 00000 @TCMP 85 #0100 HR00 010 ZCP和ZCPL指令 格式: ZCP的指令格式: ZCP -- CD LL UL 其中: 操作数CD为比较字,它可以是IR、SR、AR、LR、HR、TC、DM、#。 操作数LL为数据范围下限,它可以是IR、SR、AR、LR、HR、TC、DM、#。 操作数UL为数据范围上限,它可以是IR、SR、AR、LR、HR、TC、DM、#。 LL?UL。 ZCPL指令格式: ZCPL -- CD LL UL 其中: 操作数CD为比较字,它可以是IR、SR、AR、LR、HR、TC、DM。 操作数LL为数据范围下限,它可以是IR、SR、AR、LR、HR、TC、DM。 操作数UL为数据范围上限,它可以是IR、SR、AR、LR、HR、TC、DM。 LL?UL。 功能:ZCP是数据区域范围比较指令;ZCPL是双字数据区域范围比较指令。 数据区域范围比较时用CD和由LL和UL指定的数据区域进行比较,根据比较结果置相应的标志位:若CD LL,则置LE为ON;若LL?CD?UL,则置EQ为ON;若UL CD,则置GR为ON。 双字数据区域范围比较时参加比较的数据为CD和CD+1组成的8位二进制数,数据区域范围的上、下限分别由UL、UL+1和LL、LL+1两个8位二进制数指定。输出结果送相应的标志位。 【例4】 设有以下程序段: LD 00001 ZCP -- 200 #0100 #8F00 在执行程序段条件满足时,可以根据标志位的结果知道IR200中的数据是否在指定区域范围内 0100,8F00 ,或者是否大于或小于指定的数据区域范围。 6.7 数据转换类应用指令 BIN和BCD指令 格式: BIN 23 @BIN 23 S S R R BCD 24 @BCD 24 S S R R 其中: 操作数S为源通道,操作数R为目的通道。S和R可以是IR、SR、AR、LR、HR、TC、DM、*DM。 功能:BIN为 BCD码到二进制码的转换指令;BCD为二进制码到BCD码的转换指令。当执行条件满足时,将S中的数据完成所需转换并将结果送R。S中 的内容不变。 说明:当转换结果等于0000时,系统置相等 标志25506为ON。 4 编程时对于复杂逻辑关系的程序段,可按照先难后易的基本原则实现。 ?当有几个串联支路相并联时,可按先串后并的原则将触点多的支路放在梯形图的最上端。 当有几个并联支 路相串联时,可按先并后串的原则将触点多的支路放在梯形图的最左 端。 【例3】 梯形图等效变换图例如图所示。 LD 00001 LD 00002 LD 00002 AND 00003 AND 00003 OR 00001 OR LD OUT 01001 OUT 01001 图 a 等 效变换前程序段 图 a 等效变换后程序段 图 b 等效变换前程序 段 图 b 等效变换后程序段 LD 00001 LD 00002 LD 00002 OR 00003 OR 00003 AND 00001 AND LD OUT 01001 OUT 01001 8 TIM指令 格式: TIM N SV 其中: 操作数N为定时器TC号, 取值范围为十进制数000,127 。 操作数SV为定时器的设定 值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、*DM、#,取值范围0000,9999。 功能:定时器指令。TIM是最小单位为0.1秒的减一计数器,故定时范围为0,999.9秒。当输入条件为ON时,TIM开始记时。记时操作为每0.1秒当前值PV减一。当PV等于0时,定时到,TIM状态置ON。当输入条件为OFF或电源掉电时,TIM被复位。复位后状态置OFF,送SV为新的PV值。 【例1】 TIM指令应用图例之一如图所示。 图中的定时器TIM000的定时时间为60秒,即当00000为ON时,TIM开时记时。60秒以后定时器定时到,程序段中的01000为ON。相应的梯形图程序如下: LD 00000 TIM 000 #0600 LD TIM000 OUT 01000 9 计数器CNT指令 格式: CP条件 R条件 CNT N SV 其中: 操作数N为计数器TC号,取值范围为十进制数000,127。 操作数SV为计数器的设定值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、*DM、#,取值范围0000,9999。 CNT在程序中有两个输入条件,故在格式中专门列出。在这里CP为计数脉冲输入端。R为复位端。 功能:计数器指令。减一计数器。当R为OFF时计数器为计数状态。计数时,CP每次由OFF变为ON计数一次。计数操作由PV值减一完成。当PV值减到0时计数到,计数器输出状态置ON。当R为ON时计数器为复位状态,复位后计数器输出状态置OFF,PV被重新置入SV值。 【例3】 ONT指令的应用。CNT指令的程序段如下: LD 00000 LD 00001 CNT 127 #0050 LD CNT127 OUT 01001 6.3 保持指令、微分指令、空操作 和结束指令 KEEP指令 格式: 条件S 条件R KEEP 11 N 其中的操作数N也是位,它可以是IR、SR、AR、LR或HR。 功能:锁存指令。KEEP相当于一个软件保持器。它前面要有两个条件,故在格式中专门列出。条件S为保持器的置位输入。条件R为保持器的复位输入。即:当条件S满足,操作数N置ON并保持;当条件R满足,则操作数N置OFF。特别地,当 S和R同时满足时,按复位优先的运算,操作数N置OFF。 【例6】 KEEP指令的应 用。KEEP指令的程序段如下: LD 00001 LD 00002 KEEP 11 01000 与程序段对应的梯形图例及其相应波。例中的置位输入为00001,复位输入为00002,显然利用KEEP指令可以代替相应的自锁运算逻辑。 KEEP指令应用梯形图例及相应的波形 DIFU 13 和DIFD 14 指令 格式: DIFU 13 N DIFD 14 N 其中的操作数N也是位,它可以是IR、SR、AR、LR或HR。 功能:微分指令。 DIFU为上升沿微分指令,当执行条件上升沿时使操作数N有一个扫描周期的ON。 DIFD为下降沿微分指令,当执行条件下降沿时使操作数N有一个扫描周期的ON。 【例7】 DIFU和DIFD指令的应用。DIFU和DIFD指令的程序段如下: LD 00001 DIFU 13 20001 DIFD 14 20002 与程序段的对应的梯形图例及其相应波。其中微分指令的输出脉冲宽度为一个扫描周期。 DIFU 13 和DIFD 14 指令应用梯形图例及相应的波形 NOP 00 指令 格式: NOP 00 功能:空操作指令。不做任何操作, 可用于程序调试时的指令暂时删除或程序执行时间微调等特殊用途。 END 01 指令 格式: END 01 功能:结束指令。表示程序的结束。每一程序的最后一条指令必须是END指令。没有END指令的程序不能被执行并会显示相应的出错信息。END指令以后的程序段将不会被执行。 说 明:执行END指令时标志位ER、CY、GR、EQ和LE将被置OFF。 6.4 顺序控制和暂存指令 IL和ILC指令 格式: IL 02 ILC 03 功能:互锁和互锁解除指令。 IL定义互锁程序段的开始,IL指令的条件就是互锁的条件。ILC定义互锁程序段的结束。当IL前的逻辑条件为ON时,位于IL和ILC指令之间的互锁程序段照常运行。当IL前的逻辑条件为OFF时,互锁程序段将不被执行。此时该程序中的各个输出的状态为:所有的输出线圈置为OFF,所有的定时器被复位,所有的计数器、保持继电器和移位寄存器保持当前状态不变。 说明:IL和ILC指令应成对使用,否则在检查程序时会得到出错信息。但该错误并不影响程序的执行。 [例1】 IL和ILC指令的应用。 有互锁程序 a 所示,无互锁程序 b 所示。 当互锁条件00001为OFF时,无论其他条件如何变化,程序段中的所有输出均保持OFF不变。从逻辑运算上看图 a 和图 b 具有完全相同的功能。 IL和ILC指令应用例梯形图 TR指令 功能:TR被称为暂存继电器。与LD和OUT指令配合,TR可以用来暂存程序运行的中间结果。利用TR可以方便编程。在程序中可以使用的TR共有8个,分别编号为TR0到TR7。 【例2】 TR指令的应用。TR指令的程序段 如下: LD 00000 OUT TR0 AND 00001 OUT 01000 LD TR0 AND 00002 OUT TR1 AND 00003 OUT 01001 LD TR1 AND 00004 OUT 01002 TR指令应用例梯形图 JMP和JME 格式: JMP 04 N JME 05 N N为跳转号,可以是00,49之间任何十进制数字。 功能:跳转和跳 转结束指令。 当JMP指令前的执行条件为OFF时,CPU将 跳过JMP和JME指令之间的程序段,直接执行其后面的程序内容。当 JMP指令前的执行条件为ON时,则不进行跳转,如同没有跳转指令 时一样执行。 JMP、JME指令和互锁程序的最大不同是,当 发生跳转时,JMP和JME指令之间程序段中的所有输出、保持器、定 时器和计数器状态都会保持不变。且被跳转的程序段不再占用扫描时 间。 【例3】 JMP和JME指令应用图。 JMP和JME指令应用例 梯形图 JMP指令嵌套应用例梯形图 6.5 定时器和计数器应用指 令 TIMH指令 格式: TIMH 15 N SV 其中: 操作 数N和SV的定义和取值范围与TIM指令相同。 功能:高 速定时器指令。最小定时单位为0.01秒。定时范围为0,99.99秒。 其应用和使用方法与TIM指令相同。 CNTR指令 格式: ACP条 件 SCP条件 R条件 CNTR 12 N SV 电气控制 与PLC 第六章 欧姆龙PLC指令系统及编程 6.1 概述 6.2 基本编 程指令 6.3 保持、微分指令 6.4 顺序控制和暂存指令 6.5 定时器 和计数器应用指令 6.6 数据比较类应用指令 6.7 数据转换类应用 指令 6.8 数据移位类应用指令 6.9 数据传送类应用指令 6.10 数据运算类应用指令 6.11 子程序和中断控制类应用指令 6.12 高速计数器应用指令 6.13 其他特殊应用指令 6.14 特殊运算指令 6.15 通信指令 6.16 典型应用举例 CPM1A共有: 基本指令14条,应用指令79条(有功能号)。 指令执行的典型时间是: 基本指令:LD指令的执行时间为0.64 μs。 应用指令:MOV指令:16.3 μs。 PLC编程可以以梯形图形式出现,也可以用指令形式表示,两者可以相互转化。 6.1 概述 助记符指令的一般格式为: 指令码 操作数1 操作数2 操作数3 或 指令码 操作 数 【例1】 某指令 ADD 30 #1270 *DM0101 DM0123 由指令码可知,该指令为一条BCD码加法运算指令。指令的三个操作数分别为参加运算的加数、被加数和结果。其中加数为立即数操作数1270。被加数为间接寻址操作数,程序在DM0101通道中取出操作数的实际地址。运算结果为直接寻址操作数,即把和数送至DM0123通道。 小于标志LE 25507 ,执行比较指令时,如果第一操作数小于第二操作数,该位置ON。 等于标志EQ 25506 ,执行比较指令时两操作数相等,或执行运算指令时运算结果等于0,该位置ON。 大于标志GR 25505 ,执行比较指令时,如果第一操作数大于第二操作数,该位置ON。 进位标志CY 25504 ,执行运算指令时,如果结果最高位向上有进位或借位,该位置ON。 出错标志ER 25503 ,执行指令出错时该位置ON。典型的执行错误有操作数地 址错、控制字无定义等。出错标志为ON时,指令将停止执行。 6.2基本编程指令 基本编程指令主要包括与、或、非、输出、复位、置位等逻辑指令。 另外,普通定时器和计数器指令也没有功能号,也归为基本指令。 共14条。 所有无功能号的指令称为基本编程指令。 1 LD和LD NOT 指令 格式: LD N LD NOT N 其中的操作数N为位,即LD和LD NOT指令只能以位为单位进行操作。这里的N可以是IR、SR、AR、HR、LR、TR或TC。 功能:装入指令。用来表示一个逻辑运算的开始,它们的执行不会影响标志位。 LD表示N的常开触点与左端母线相连。LD NOT表示N的常闭触点与左端母线相连。 说明:LD和LD NOT指令的执行不会影响标志位。 2 OUT和OUT NOT指令 格式: OUT N OUT NOT N 其中的操作数N也是位,它可以是IR、SR、AR、LR、TR或HR。 功能:输出指令。用来表示一个运算结果。 OUT指令将运算结果输出到N。OUT NOT指令将运算结果取反后输出到N。 说明:OUT 和OUT NOT指令也只能以位为单位进行操作。它们的执行不会影响标志位。在程序中不同的线圈可以同条件并联输出。 【例1】 OUT和OUT NOT等指令的应用, 指令的程序如下: LD 00000 OUT 01000 OUT NOT 01001 LD NOT 00002 OUT 01002 3 AND和AND NOT指令 格式: AND N AND NOT N 其中的操作数N也是位,它可以是IR、SR、AR、LR、HR或TC。 功能:逻辑与运算指令。 AND表示N与前面的逻辑结果进行与运算。即N的常开触点与前面的逻辑串联。AND NOT表示N取非并与前面的逻辑结 果进行与运算。即N的常闭触点与前面的逻辑串联。 说明:AND和AND NOT指令只能以位为单位进行操作。它们的执行不会影响标志位。在程序中逻辑与运算的串联触点个数是没有限制的。 【例2】 AND和AND NOT指令的应用。 指令的程序如下: LD 00001 AND 00002 AND NOT 00003 OUT 01000 4 OR和OR NOT指令 格式: OR N OR NOT N 其中的操作数N也是位,它可以是IR、SR、AR、LR、HR或TC。 功能:逻辑或运算指令。 OR表示N与前面的逻辑结果进行或运算。即N的常开触点与前面的逻辑并联。OR NOT表示N取非并与前面的逻辑结果进行或运算。即N的常闭触点与前面的逻辑并联。 说明:OR和OR NOT指令只能以位为单位进行操作。它们的执行不会影响标志位。在程序中逻辑或运算的并联触点个数是没有限制 的。 【例3】 OR和OR NOT等指定的应用程序段为: LD 00000 OR 00001 OR NOT 00002 OUT 01001 这段程序表示的运算逻辑为:当三个输入条件00000为ON或00001为ON,或00002为OFF中有一个被满足时,输出01001就会被置ON。 5 AND LD和OR LD指令 格式: AND LD OR LD 功能:触点组操作指令。 AND LD指令表示对触点组进行逻辑与运算。OR LD指令表示对触点组进行逻辑或运算。 说明:AND LD指令和OR LD指令不需要任何操作数,只表明触点组之间的逻辑运算关系。使用这两条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法 时触点组数不能超过8 【例4】 设有梯形图为图 a 、 b 所示的 两个逻辑运算。将该运算用AND LD和OR LD指令完成,有两种方法 实现助记符程序段,分别如下: ? 图 a 逻辑分置法实现程序段: LD 00000 OR 00003 LD 00001 OR 00004 AND LD LD NOT 00002 OR NOT 00005 AND LD OUT 01001 ? 图 a 逻辑后置法实现程序段: LD 00000 OR 00003 LD 00001 OR 00004 LD NOT 00002 OR NOT 00005 AND LD AND LD OUT 01001 ? 图 b 逻辑分置法实现程序段: LD 00000 AND 00002 LD 00003 AND NOT 00004 OR LD LD NOT 00005 AND NOT 00006 OR LD OUT 01001 ? 图 b 逻辑后置法实现程序段: LD 00000 AND 00002 LD 00003 AND NOT 00004 LD NOT 00005 AND NOT 00006 OR LD OR LD OUT 01001 6 SET和RESET指令 格式: SET N RESET N 其中的操作数N 也是位,它可以是IR、SR、AR、LR或HR。 功能:置位和复位指令。 用来完成直接对位的置位或复位操作。当SET指令的执行条件满足时 置N为ON。当RESET指令的条件满足时置N为OFF。 【例5】 在 00000和00002的状态变化已知的条件下,下面程序段执行的结。 LD 00000 SET 20000 LD 00002 RESET 20000 7、编 程 规 则 在编制梯形图或助记符程序时,应注意 遵循以下编程规则: 1 每一个内部继电器的触点在程序中可以无 限次重复使用,但其线圈在同一程序中一般只能使用一次。同一继电 器的多线圈使用会引起逻辑上的混乱,应尽量避免。 2 梯形图信号流向只能自左向右,垂直分支上不可以有任何触点。 【例1】 梯 形图的编制举例。 在下图的梯形图例中, 图 a 为不规范的梯形图, 图 b 为规范的梯形图。 3 继电器的线圈应该放在每一运算逻辑的最右端,在线圈右端不能再有任何触点。线圈不可以与左端母线直接相连,如果逻辑上有这种需要时也要通过一合适的常闭触点来实现。 【例2】 下图所示逻辑应用了特殊继电器中的常ON触点来实现上电后一直执行的操作。 电气控制与PLC 第六章 欧姆龙PLC指令系统及编程
本文档为【第六章_欧姆龙_PLC指令系统及编程(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_792768
暂无简介~
格式:doc
大小:90KB
软件:Word
页数:40
分类:互联网
上传时间:2017-09-30
浏览量:57