第章S3的指令系统及编程ppt课件.ppt_第1页
第章S3的指令系统及编程ppt课件.ppt_第2页
第章S3的指令系统及编程ppt课件.ppt_第3页
第章S3的指令系统及编程ppt课件.ppt_第4页
第章S3的指令系统及编程ppt课件.ppt_第5页
已阅读5页,还剩317页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章S7 300的指令系统及编程 重点与难点可编程序控制器的位逻辑指令 数据传送与转换指令 运算指令 移位指令 累加器操作和地址寄存器操作指令 控制指令 基本要求1 熟练使用可编程序控制器的基本指令进行编程 2 熟悉S7 300的系统功能模块 本章内容1 S7 300位逻辑指令 2 S7 300数据传送与转换指令 3 S7 300运算指令 4 S7 300移位指令 5 累加器操作和地址寄存器操作指令 6 控制指令 7 S7 300的系统功能模块简介 3 1位逻辑指令 位逻辑指令主要包括位逻辑运算指令 位操作指令和位测试指令 位逻辑指令的运算结果用两个二进制数字1和0来表示 可以对布尔操作数 BOOL 的信号状态扫描并完成逻辑操作 逻辑操作结果 ResultofLogicOperation RLO 用以赋值 置位 复位布尔操作数 也控制定时器和计数器的运行 3 1 1基本逻辑指令 与 或 逻辑指令在STEP7中的三种语言表示如图3 1所示 表3 1 与 或 逻辑指令的三种语言表示 1 语句表STL表示的基本位逻辑指令 2 梯形图LAD表示的基本位逻辑指令 1 逻辑 与 操作功能图 FBD 语言如下 梯形图 LAD 语言如下 语句表 STL 语言如下 AI0 0AI0 1 Q4 0 逻辑关系如下 ANDI0 0I0 1Q4 0000010100111 2 逻辑 或 操作只要有一个输入信号为 1 则输出为 1 所有输入信号都为 0 输出才为 0 功能图 FBD 语言如下 当输入信号I0 0和I0 1有一个以上为 1 时 输出信号Q4 0为 1 当输入信号I0 0和I0 1都为 0 时 输出信号Q4 0才为 0 梯形图 LAD 语言如下 语句表 STL 语言如下 OI0 0OI0 1 Q4 0 逻辑关系如下 ORI0 2I0 3Q4 2000011101111 3 逻辑异或操作当两个输入信号其中一个为 1 而另一个为 0 时 输出信号为 1 当两个输入信号都为 0 或者都为 1 时 输出信号为 0 逻辑指令异或的STEP7中三种语言表示如图3 1所示 图3 1逻辑指令异或的STEP7中三种语言表示 逻辑关系如下 XORI0 4I0 5Q4 0000011101110 功能图 FBD 语言如下 梯形图 LAD 语言如下 语句表 STL 语言如下 XI0 0XI0 2 Q3 1 4 逻辑取反操作逻辑取反操作对逻辑运算结果RLO取反 功能图 FBD 符号 梯形图 LAD 符号 NOT 语句表 STL 符号 NOT 5 中间输出符号中间输出指令用于存储RLO的中间值 该值是中间输出指令前的位逻辑操作结果 中间输出指令不能用于结束一个逻辑串 因此 中间输出指令不能放在逻辑串的结尾或分支的结尾处 6 位逻辑操作规则位逻辑指令的运算规则 先与后或 当输入信号I1 0和I1 1都为 1 或输入信号I1 2和I1 3都为 1 时 输出信号Q3 1为 1 否则输出信号Q3 1为 0 功能图 FBD 语言如下 梯形图 LAD 语言如下 语句表 STL 语言如下 AI1 0AI1 1OAI1 2AI1 3 Q3 1 3 1 2置位 复位指令置位 复位指令根据RLO的值 来决定被寻址位的信号状态是否需要改变 若RLO的值为1 被寻址位的信号状态被置1或清0 若RLO是0 则被寻址位的信号保持原状态不变 对于置位操作 一旦RLO为1 则被寻址信号 输出信号 状态置1 即使RLO又变为0 输出仍保持为1 对于复位操作 一旦RLO为1 则被寻址信号 输出信号 状态置0 即使RLO又变为0 输出仍保持为0 1 语句表STL表示的置位 复位指令 2 梯形图LAD表示的置位 复位指令 1 置位 复位线圈指令 2 置位 复位双稳态触发器指令如果置位输入端为 1 复位输入端为 0 则触发器被置位 此后 即使置位输入端为0 触发器也保持置位不变 如果复位输入端为1 置位输入端为 0 则触发器被复位 置位优先型RS触发器的R端在S端之上 当两个输入端都为1时 下面的置位输入端最终有效 既置位输入优先 触发器被置位 复位优先型SR触发器的S端在R端之上 当两个输入端都为1时 下面的复位输入端最终有效 即复位输入优先 触发器被复位 3 1 3边沿信号识别指令1 RLO边沿信号识别指令当信号状态变化时就产生跳变沿 当从0变到1时 产生一个上升沿 或称正跳沿 若从1变到0 则产生一个下降沿 或称负跳沿 如图3 2所示 图3 2时序图 跳变沿检测的原理是 在每个扫描周期中把信号状态和它在前一个扫描周期的状态进行比较 若不同则表明有一个跳变沿 因此 前一个周期里的信号状态必须被存储 以便能和新的信号状态相比较 1 下降沿信号识别指令 2 上升沿信号识别指令 2 触点边沿信号识别指令 在OB1的扫描周期中 CPU对的状态与其上一个扫描周期的状态进行比较 上一个扫描周期的状态保存在中 若该状态是0且存放在中的上次状态是1 这说明NEG指令检测到的负跳沿 那么NEG指令把RLO位置1 如果在相邻的两个扫描周期中状态相同 全为1或0 那么NEG指令把RLO位清0 3 1 4定时器指令S7中定时时间由时基和定时值两部分组成 定时时间等于时基与定时值的乘积 当定时器运行时 定时值不断减1 直至减到0 减到0表示定时时间到 定时时间到后会引起定时器触点的动作 定时器的第0到第11位存放BCD码格式的定时值 三位BCD码表示的范围是0 999 第12 13位存放二进制格式的时基 如图3 7所示 图3 7定时器的结构 表3 6二进制格式的时基和分辨率 当定时器启动时 累加器1低字的内容被当作定时时间装入定时字中 这一过程是由操作系统控制自动完成的 用户只需给累加器l装入不同的数值 即可设置需要的定时时间 图3 8定时器的工作状态时序 1 脉冲定时器脉冲定时器时序如图3 9所示 图3 9脉冲定时器时序 STL语句表如下 AI0 0LS5T 10s 装入定时时间到ACCU1SPT5 启动脉冲定时器T5 AI0 1RT5 定时器T5复位AT5 Q4 0 FBD功能图如下 时序图如图3 10所示 图3 10时序图 2 定时器再启动指令FR格式 FR定时器再启动指令FR用于重新装载定时时间 定时器以新装入的时间值运行 下面结合一个具体的例子来说明 STL语句表如下 AI2 0FRT1 再启动定时器T1AI2 1LS5T 10s 装入定时时间到ACCU1 SPT1 启动脉冲定时器T1AI2 2RT1 定时器T1复位AT1 Q4 0 时序如图3 11所示 图3 11时序图 1 在定时器运行期间 使能输入端I2 0有一个从 0 到 1 的变化 此时 定时器T1被再启动 定时时间恢复到预置初值重新开始计时 I2 0有一个从 1 到 0 的变化没有作用 2 虽然定时器没有运行 当使能输入端I2 0有一个从 0 到 1 的变化 同时定时器启动输入端I2 1处于高电平状态时 定时器T1也被启动 3 当定时器启动输入端I2 1处于低电平状态时 即使使能输入端I2 0有一个从 0 到 1 的变化 定时器T1也不能启动 3 扩展脉冲定时器扩展脉冲定时器的时序图如图3 12所示 图3 12时序图 STL语句表如下 AI0 0LS5T 2s 装入定时时间到ACCU1SET5 启动扩展脉冲定时器T5 AI0 1RT5 定时器T5复位AT5 Q4 0 FBD功能图如下 时序图如图3 13所示 图3 13时序图 4 接通延时定时器接通延时定时器的时序如图3 14所示 图3 14时序图 STL语句表如下 AI0 0LS5T 2s 装入定时时间到ACCU1SDT5 启动延时接通定时器T5 AI0 1RT5 定时器T5复位AT5 Q4 0 FBD功能图如下 时序图如图3 15所示 图3 15时序图 5 保持型接通延时定时器保持型接通延时定时器的时序如图3 16所示 图3 16时序图 STL语句表如下 AI0 0LS5T 2s 装入定时时间到ACCU1SST5 启动保持型延时接通定时器T5 AI0 1RT5 定时器T5复位AT5 Q4 0 FBD功能图如下 时序图如图3 17所示 图3 17时序图 6 关断延时定时器关断延时定时器时序如图3 18所示 图3 18时序图 STL语句表如下 AI0 0LS5T 2s 装入定时时间到ACCU1SFT5 启动关断延时接通定时器T5 AI0 1RT5 定时器T5复位AT5 Q4 0 FBD功能图如下 时序图如图3 19所示 图3 19时序图 3 1 5计数器指令1 计数器的结构计数器是一种由位和字组成的复合单元 计数器的输出由位表示 其计数值存储在字存储器中 在CPU的存储器中留出了计数器区域 该区域用于存储计数器的计数值 每个计数器为2个字节 byte 称为计数字 在S7 300中 计数器区为512个字节 byte 因此最多允许使用256个计数器 计数器的第0 11位存放BCD码格式的计数值 三位BCD码表示的范围是0 999 第12 15位保留 如图3 20所示 图3 20计数器图示 S7中的计数器用于对RLO正跳沿计数 S7中有三种计数器 它们分别是加计数器 减计数器和可逆计数器 只要计数器的计数值不是 0 计数器的输出就为 1 当计数器启动时 累加器1低字的内容被当作计数初值装入计数字中 这一过程是由操作系统控制自动完成的 用户只需给累加器l装入不同的数值 即可设置需要的计数初值 但要确保累加器1低字符符合图3 20所示规定的格式 LC xyz其中 xyz 记数初值 取值范围 1 999 FBD符号 端子说明 CU 加计数输入CD 减计数输入S 预置输入PV 设置计数初值R 复位输入Q 计数器状态输出CV 当前计数值输出 十六进制格式 BCD 当前计数值输出 BCD码格式 2 计数器再启动指令格式 FR类似于定时器再启动指令FR 计数器再启动指令用于重新装载计数初值 计数器以新装入的计数值运行 3 2数据传送与转换指令 3 2 1传送指令FBD符号 端子说明 EN 允许输入端IN 源数据输入端OUT 目的操作数输出ENO 允许输出端 1 字节传送指令使能输入有效时 把一个单字节无符号数据由IN传送到OUT所指的字节存储单元 IN的寻址范围 VB IB QB MB SB SMB LB AC VD AC LD 常数 OUT的寻址范围 VB IB QB MB SB SMB LB AC VD AC LD 指令格式 MOVBIN1 OUT 2 BIR 传送字节立即读指令使能输入有效时 立即读取单字节物理输入区数据IN 并传送到OUT所指的字节存储单元 IN的寻址范围 IBOUT的寻址范围 VB IB QB MB SB SMB LB AC VD AC LD 指令格式 BIRIN1 OUT 3 块传送指令指令可用来进行一次多个 最多255个 数据的传送 数据块类型可以是字节块 字块 双字块 三条指令中N的寻址范围都是 VB IB QB MB SB SMB LB AC VD AC LD和常数 使ENO断开的出错条件 SM4 3 运行时间 0006 间接寻址 0091 数超界 4 梯形图符号及语句表格式 MOV 传送指令标识符B W DW R 数据类型 字节 字 双字 实数 EN 传送启动信号IN 源操作数OUT 目标操作数ENO 传送状态位 5 功能启动信号EN 1时 执行传送功能 其功能是把原操作数IN传送到目标操作数OUT中 此时 ENO为1状态 6 说明 1 应用传送指令应该注意数据类型 字节用符号B 字用符号W 双字用符号D或DW 实数用符号R表示 2 操作数范围如表3 7所示 表3 7操作数范围 7 例题 3 2 2转换指令转换指令将累加器1中的数据进行类型转换 转换的结果仍在累加器l中 能够实现的转换操作有 BCD码和整数及长整数间的转换 实数和长整数间的转换 数的取反 取负 字节扩展等 在STEP7中 整数和长整数是以补码形式表示的 BCD码数值有两种 一种是字 16位 格式的BCD码数 其数值范围为 999 999 另一种是双字 32位 格式的BCD码数 范围为 9999999 9999999 1 BCD和整数间的转换BCD和整数间的转换指令如表3 8所示 表3 8BCD和整数间的转换 1 BTI指令SLT格式 BTI 2 BTD指令SLT格式 BTD说明 将累加器1中的7位BCD码数转换为32位整数 装入累加器1中 0 27位 最高位 31位 为符号位 3 ITB指令SLT格式 ITB 4 ITD指令SLT格式 ITD 5 DTB指令SLT格式 DTB 6 DTR指令SLT格式 DTR 2 实数和长整数间的转换实数和长整数间的转换指令如表3 9所示 表3 9实数和长整数间的转换 因为实数的数值范围远大于32位整数 所以有的实数不能成功地转换为32位整数 如果被转换的实数格式非法或超出了32位整数的表示范围 则在累加器1中得不到有效结果 而且状态字中的OV和OS被置1 上面的指令都是将累加器1中的实数化整为32位整数 因化整的规则不同 所以在累加器1中得到的结果也不一致 如表3 10所示 表3 10累加器1中的执行结果 3 数的取反取负数的取反取负指令如表3 11所示 表3 11数的取反取负指令 1 INVI指令 表3 12INVI指令 2 INVD指令 表3 13INVD指令 3 NEGI指令 表3 14NEGI指令 4 NEGD指令 表3 15NEGD指令 5 NEGR指令 表3 16NEGR指令 4 字节交换指令 1 CAW累加器1低字字节交换指令格式 CAW说明 将累加器1低字的高位字节和低位字节交换 高字不变 如表3 17所示 表3 17CAW指令 2 CAD累加器1字节交换指令格式 CAD说明 累加器1中的4个字节进行整字节交换 如表3 18所示 表3 18CAD指令 3 3运算指令 3 3 1整数算术运算指令在STEP7中可以对整数 长整数和实数进行加 减 乘 除算术运算 算术运算指令在累加器1和2中进行 在累加器2中的值作为被减数或被除数 算术运算的结果保存在累加器1中 累加器1原有的值被运算结果覆盖 累加器2中的值保持不变 CPU在进行算术运算时 不必考虑RLO 对RLO也不产生影响 学习算术运算指令必须注意算术运算的结果将对状态字的某些位产生影响 这些位是 CC1和CC0 OV OS 在位操作指令和条件跳转指令中 经常要对这些标志位进行判断来决定进行什么操作 算术运算指令的三种语言表示如表3 19所示 表3 19算术运算指令三种语言表示 续表 可见 算术运算指令主要包括加法 减法 乘法和除法四类 1 加法 ADD I整数加法ADD DI双整数加法ADD R实数加法 2 减法 SUB I整数减法SUB DI双整数减法SUB R实数减法 3 乘法 MUL I整数乘法MUL DI双整数乘法MUL R实数乘法 4 除法 DIV I整数减法DIV DI双整数减法DIV R实数减法 另外 I16位整数相加指令 I16位整数相减指令 I16位整数相乘指令 I16位整数除法指令 D32位整数相加指令 D32位整数相减指令 D32位整数相乘指令 D32位整数除法指令MOD32位整数除法取余数指令 表3 20运算指令 续表 3 3 2扩展的浮点数算术运算指令扩展的浮点数算术运算指令如表3 21所示 表3 21扩展的浮点数算术运算指令 续表 续表 3 3 3加 减 乘 除运算1 加法运算 1 梯形图符号及语句表格式 其中 ADD 加法运算符 I INT DI DINT R REAL 数据类型符 整 双整 实数 EN EnableIn 运算允许信号 使能输入 IN1 被加数 IN2 加数 OUT 和 ENO 运算状态位 使能输出 2 功能梯形图 使能输入EN 1时 被加数IN1与加数IN2相加 其结果传送到OUT中 即 IN1 IN2 OUT 指令表 要先将一个加数送到OUT中 然后把OUT中的数据和IN2中的数据进行相加 并将其结果传送到OUT中 即 MOVWIN1 OUT IIN2 OUT实现OUT IN2 OUT 3 说明 应用加法指令应该注意的数据类型 ADD I 整数加法 将两个单字长 16位 符号整数 IN1和IN2 相加 结果为16位整数 ADD DI 双整数加法 将两个双字长 32位 符号整数 IN1和IN2 相加 结果为32位整数 ADD R 实数加法 将两个双字长 32位 符号实数 IN1和IN2 相加 结果为32位实数 在语句表中 IN1 IN2与OUT操作数的地址不同时 语句表指令将梯形图的加法运算分别用两条指令描述 IN1或IN2 OUT时 加法指令节省一条数据传送指令 本规律适用于所有四则运算指令 操作数范围加法运算的操作数范围如表3 22所示 表3 22加法指令操作数范围 4 例题 2 减法运算 1 梯形图符号及语句表格式 其中 SUB 减法运算符 I DI R 数据类型符 整数 双整数 实数 EN 使能输入 IN1 被减数 IN2 减数 OUT 差 ENO 使能输出 2 功能梯形图 使能输入EN 1时 被减数IN1减去减数IN2 其结果传送到OUT中 即 IN1 IN2 OUT 指令表 要先将一个减数送到OUT中 然后用OUT中的数据减去IN2中的数据 并将其结果传送到OUT中 即 MOVWIN1 OUT IIN2 OUT实现OUT IN2 OUT 3 说明 应用减法指令应该注意的数据类型 操作数范围 表3 23减法指令操作数范围 4 例题 3 乘法运算 1 梯形图符号及语句表格式 MUL 乘法运算符I DI R 数据类型符 整数 双整数 实数 EN 使能输入IN1 被乘数 IN2 乘数OUT 积ENO 使能输出 2 功能梯形图 使能输入EN 1时 被乘数IN1与乘数IN2相乘 其结果传送到OUT中 即 IN1 IN2 OUT 语句表 要先将被乘数送到OUT中 然后把OUT中的数据和IN2中的数据相乘 并将其结果传送到OUT中 即 MOVWIN1 OUT IIN2 OUT实现IN2 OUT OUT 3 说明 应用乘法指令应该注意的数据类型 MUL I 整数乘法 将两个单字长 16位 符号整数 IN1和IN2 相乘 结果为16位整数 MUL DI 双整数乘法 将两个双字长 32位 符号整数 IN1和IN2 相乘 结果为32位整数 MUL 整数乘双整数输出 将两个单字长 16位 符号整数 IN1和IN2 相乘 结果为32位整数 MUL R 实数乘法 将两个双字长 32位 符号实数 IN1和IN2 相乘 结果为32位实数 操作数范围乘法运算的操作数范围如表3 24所示 表3 24乘法指令操作数范围 4 例题 4 除法运算 1 梯形图符号及语句表格式 其中 DIV 除法运算符 I DI R 数据类型符 整数 双整数 实数 EN 使能输入 IN1 被除数 IN2 除数 OUT 商 ENO 使能输出 2 功能梯形图 使能输入EN 1时 被除数IN1与除数IN2相除 其结果传送到OUT中 即 IN1 IN2 OUT 语句表 要先将被除数送到OUT中 然后把OUT中的数据和IN2中的数据相除 并将其结果传送到OUT中 即 MOVWIN1 OUT IIN2 OUT实现OUT IN2 OUT 3 说明 应用除法指令应该注意的数据类型 DIV I 整数除法 将两个单字长 16位 符号整数 IN1和IN2 相除 结果为16位整数 DIV DI 双整数除法 将两个双字长 32位 符号整数 IN1和IN2 相除 结果为32位整数 DIV 整数除双整数输出 将两个单字长 16位 符号整数 IN1和IN2 相除 结果为32位整数 其中低16位是商 高16位是余数 DIV R 实数除法 将两个双字长 32位 符号实数 IN1和IN2 相除 结果为32位实数 操作数范围除法运算的操作数范围如表3 25所示 表3 25除法指令操作数范围 4 例题 3 3 4算术运算指令实例 例3 31 分别用BIN算术运算指令和BCD算术运算指令完成下式的计算 例3 32 在温度检测系统中 用Pt100热电阻作为测温元件 测温范围为0 200 现选择EM235将温度变送器的4mA 20mA电流转换成12位二进制数 该数据存于AIW0的第3 14位 试编制把检测值转换成实际的温度值并存于VD0中的程序 例3 33 设计启动保持和停止电路 例3 34 设计简易三组抢答器 例3 35 设计小车自动往返运动的梯形图 3 4移位指令 通常 移位指令分为左 右移位和循环左 右移位及寄存器移位指令三大类 左 右移位和循环左 右移位指令按移位数据的长度又分为字节型 字型 双字型三种 3 4 1移位指令移位指令将累加器1低字中或整个累加器1的内容左移或右移 移动的次数在累加器2中或直接在指令中以常数给出 累加器1移位后空出的位 填以0或符号位 0代表正 1代表负 被移动的最后一位保存在状态字中的CC1里 CC0和OV被复位为0 各移位指令如下 SSI16位整数右移指令SSD32位整数右移指令SLW逻辑字左移指令SRW逻辑字右移指令SLD逻辑双字左移指令SRD逻辑双字右移指令 1 无符号数移位指令移位指令可以将累加器1的低字或整个累加器的内容进行左移或右移一定的位数 二进制数左移一位相当于将原数值乘以2 右移一位相当于将原数值除以2 图3 22移位指令 字 双字 2 有符号数移位指令FBD符号 STL指令格式 SSI1 当使能输入端EN 1时 执行整数右移指令 将来自输入端IN的16位整数右移N位后 由OUT端输出 2 N端输入要移位的次数 如果N 16则其作用与N 16相同 3 移出的空位由符号位的状态填充 如果是正数 以0填充 如果是负数 以1填充 4 如果N不等于0 则执行该指令后 CC0和OV位总是等于0 5 ENO EN 3 寄存器移位指令移位寄存器指令 SHRB 把输入的DATA数值移入移位寄存器 而该移位寄存器是由S BIT和N决定的 其中S BIT指定移位寄存器的最低位 N指定移位寄存器的长度 正向移位 N反向移位 N 图3 24寄存器移位指令 3 4 2循环移位指令循环移位指令与一般移位指令的差别 循环移位指令的空位填入从累加器中移出的位 各循环移位指令如下 RLD32位左循环指令RRD32位右循环指令RLDA32位带CC1位左循环指令RRDA32位带CC1位右循环指令 循环左 右移位指令 ROL ROR 的功能 使能输入有效时 字节 字或双字 IN 数据循环左移N位后 将结果输出到OUT所指定的存储单元中 并将最后一次移出位送SM1 1 FBD符号 STL指令格式 RLD说明 1 当使能输入端EN 1时 执行双字左循环指令 将来自输入端IN的32位双字左循环N位后 由OUT端输出 2 N端输入要移位的次数 3 如果N不等于0 则执行该指令后 CC0和OV位总是等于0 4 ENO EN 具体的操作示意图如图3 25所示 图3 25循环移位 图3 26双字循环移位 3 5累加器操作和地址寄存器操作指令 累加器操作指令如表3 26所示 图3 30给出了CAW CAD指令执行时累加器1的变化情况 表3 26累加器操作指令 续表 图3 30CAW CAD指令执行时累加器1的变化 3 5 1基本的装入和传送指令装入 L 和传送 T 指令可以在存储区之间或存储区与过程输入 输出之间交换数据 L指令将源操作数装入累加器1中 而累加器原有的数据移入累加器2中 累加器2中原有的内容被覆盖 T指令将累加器1中的内容写入目的存储区中 累加器的内容保持不变 L和T指令可对字节 8位 字 16位 双字 32位 数据进行操作 当数据长度小于32位时 数据在累加器右对齐 低位对齐 其余各位填0 基本的装入和传送指令如下 L 通用装入指令LSTW 将状态字寄存器的内容装入到累加器1 LAR1AR2 将地址寄存器2的内容装入到地址寄存器1LAR1 将32位的长整数装入到地址寄存器1 LAR1 将累加器1的内容装入到地址寄存器1LAR2 将32位的长整数装入到地址寄存器2 LAR2 将累加器1的内容装入到地址寄存器2T 通用传输指令TSTW 将累加器1的内容传输到状态字寄存器 TAR1AR2 将地址寄存器1的内容传输到地址寄存器2TAR1 将地址寄存器1的内容传输到目的单元 32位 TAR2 将地址寄存器2的内容传输到目的单元 32位 TAR1 将地址寄存器1的内容传输到累加器1 TAR2 将地址寄存器1的内容传输到累加器2CAR 交换地址寄存器的1和地址寄存器2的内容 1 对累加器1的装入和传送指令装入 L 和传送 T 指令可以在存储区之间或存储区与过程输入 输出之间交换数据 CPU执行这些指令不受逻辑操作结果RLO的影响 L指令将源操作数装入累加器1中 而累加器原有的数据移入累加器2中 累加器2中原有的内容被覆盖 T指令将累加器1中的内容写入目的存储区中 累加器的内容保持不变 2 读取或传送状态字3 装入时间值或计数值 3 5 2比较指令比较指令用于比较累加器2与累加器1中的数据大小 比较时应确保两个数的数据类型相同 数据类型可以是整数 长整数或实数 若比较的结果为真 则RLO为1 否则为0 比较指令影响状态字 用指令测试状态字有关位 可得到两个数更详细的情况 1 比较两个整数或长整数比较两个整数或长整数的指令如表3 27所示 表3 27比较两个整数或长整数 续表 2 比较两个实数 表3 28比较两个实数 3 5 3地址寄存器指令 装入和传送指令地址寄存器指令如表3 29所示 表3 29地址寄存器指令 在使用地址寄存器加指令时 应该保证累加器1或指针常数的正确格式 下面的小例子说明了把累加器1的内容加至地址寄存器指令的用法 这里 在加之前应先为累加器1装入一个指针常数 LP 250 7 装载指针常数 250 7 至累加器1 AR1 把250 7加至地址寄存器1 AR2 把250 7加至地址寄存器2 对于地址寄存器 可以不经过累加器1而直接将操作数装入或传出 或将两个地址寄存器的内容直接交换 这时采用的是地址寄存器装入和传送指令 下面简单介绍这些指令 指令格式 LAR1说明 将操作数的内容装入地址寄存器1 AR1 指令格式 LAR2说明 将操作数的内容装入地址寄存器2 AR2 指令格式 TAR1说明 将AR1的内容传送给存储区或AR2 指令格式 TAR2说明 将AR1的内容传送给存储区或AR2 指令格式 CAR说明 交换AR1和AR2的内容 3 6控制指令 1 逻辑控制指令逻辑控制指令是指逻辑块内的跳转和循环指令 跳转或循环指令的操作数是地址标号 该地址标号指出程序要跳往何处 标号最多为4个字符 第一个字符必须是字母 其余字符可为字母或数字 与跳转相关的指令有下面两条 1 跳转指令JMP 跳转指令 使能输入有效时 使程序流程跳到同一程序中的指定标号n处执行 执行跳转指令时 逻辑堆栈的栈顶值总是1 2 标号指令LBL 标号指令 标记程序段 作为跳转指令执行时跳转到的目的位置 操作数n为0 255的字型数据 跳转指令主要包括以下几类 1 无条件跳转指令 JU 2 跳转表格指令 JL 3 条件跳转指令 不同的条件具有不同的跳转指令 如下所示 JC当RLO 1时跳转JCN当RLO 0时跳转JCB当RLO 1并且BR 1时跳转JNB当RLO 0并且BR 0时跳转 JBI当BR 1时跳转JNBI当BR 0时跳转JO当OV 1时跳转JOS当OS 1时跳转 JZ累加器1中的计算结果为零跳转JNZ累加器1中的计算结果不为零跳转JP累加器1中的计算结果为正数跳转 JM累加器1中的计算结果为负数跳转JPZ累加器1中的计算结果大于等于零跳转JMZ累加器1中的计算结果小于等于零跳转JUO计算结果溢出跳转 2 程序控制指令程序控制指令包括系统控制 跳转 循环 子程序调用 顺序控制等指令 3 系统控制类指令 1 空操作指令 NOP 使能输入有效时 执行空操作指令 空操作指令不影响用户程序的执行 操作数N是标号 是一个0 255的常数 指令格式 NOPN 2 暂停指令 STOP 使能输入有效时 该指令使主机CPU的工作方式由RUN切换到STOP方式 从而立即终止用户程序的执行 STOP指令在梯形图中以线圈形式编程 指令不含操作数 指令的执行不考虑对特殊标志寄存器位和能流的影响 指令格式 STOP 无操作数 梯形图表示 STOP 3 结束指令 END MEND 结束指令直接连在左侧电源母线时 为无条件结束指令 MEND 不连在左侧母线时 为条件结束指令 END 结束指令有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论