PLC如何查找一个字是几位中某个位为ON的方法

PLC可编程逻辑器件的选择方法 - 传感技术 - 电子工程世界网
PLC可编程逻辑器件的选择方法
19:03:27来源: 互联网
摘要:介绍了在控制系统中选择PLC的一般方法,详细说明了在PLC机型的多样性,以及在PLC的输入输出点数功能等方面作如何选择。
关键词:PLC I/O 选择 开关量 模拟量 数字量
随着PLC的推广普及,PLC产品的种类和数量越来越多,而且功能也日趋完善。近年来,从美国、日本、德国等国引进的PLC产品及国内厂家组装或自行开发的产品已有几十个系列、上百种型号。PLC的品种繁多,其结构型式、性能、容量、指令系统、编程方法、价格等各不相同,适用场合也各有侧重。因此,合理选择PLC,对于提高PLC在控制系统中的应用起着重要作用。
1 机型的选择
PLC机型选择的基本原则是,在功能满足要求的前提下,选择最可靠、维护使用最方便以及性能价格比的最优化机型。
在工艺过程比较固定、环境条件较好(维修量较小)的场合,建议选用整体式结构的PLC;其它情况则最好选用模块式结构的PLC。
对于开关量控制以及以开关量控制为主、带少量模拟量控制的工程项目中,一般其控制速度无须考虑,因此,选用带A/D转换、D/A转换、加减运算、数据传送功能的低档机就能满足要求。
而在控制比较复杂,控制功能要求比较高的工程项目中(如要实现PID运算、闭环控制、通信联网等),可视控制规模及复杂程度来选用中档或高档机。其中高档机主要用于大规模过程控制、全PLC的分布式控制系统以及整个工厂的自动化等。根据不同的应用对象,表1列出了PLC的几种功能选择。
表1 PLC的功能及应用场合
功 能 要 求
应 用 场 合
替代继电器
继电器触点输入/输出、逻辑线圈、定时器、计数器
替代传统使用的继电器,完成条件控制和时序控制功能
四则数学运算、开方、对数、函数计算、双倍精度的数学运算
设定值控制、流量计算;PID调节、定位控制和工程量单位换算
寄存器与数据表的相互传送等
数据库的生成、信息管理、BAT-CH(批量)控制、诊断和材料处理等
逻辑与、逻辑或、异或、比较、置位(位修改)、移位和变反等
这些功能通常按“位”操作,一般用于设备诊断、状态监控、分类和报警处理等
表与块间的传送、校验和、双倍精度运算、对数和反对数、平方根、PID调节等
通信速度和方式、与上位计算机的联网功能、调制解调器等
PLC的诊断功能有内诊断和外诊断两种。内诊断是PLC内部各部件性能和功能的诊断,外诊断是中央处理机与I/O模块信息交换的诊断
串行接口(RS-232C)
一般中型以上的PLC都提供一个或一个以上串行标准接口(RS-232C),以例连接打印机、CRT、上位计算机或另一台PLC
现在的PLC能够支持多种通信协议。比如现在比较流行的工业以太网等
对通信有特殊要求的用户
对于一个大型企业系统,应尽量做到机型统一。这样,同一机型的PLC模块可互为备用,便于备品备件的采购和管理;同时,其统一的功能及编程方法也有利于技术力量的培训、技术水平的提高和功能的开发;此外,由于其外部设备通用,资源可以共享,因此,配以上位计算机后即可把控制各独立系统的多台PLC联成一个多级分布式控制系统,这样便于相互通信,集中管理。
2 输入/输出的选择
PLC是一种工业控制系统,它的控制对象是工业生产设备或工业生产过程,工作环境是工业生产现场。它与工业生产过程的联系是通过I/O接口模块来实现的。
通过I/O接口模块可以检测被控生产过程的各种参数,并以这些现场数据作为控制信息对被控对象进行控制。同时通过I/O接口模块将控制器的处理结果送给被控设备或工业生产过程,从而驱动各种执行机构来实现控制。PLC从现场收集的信息及输出给外部设备的控制信号都需经过一定距离,为了确保这些信息的正确无误,PLC的I/O接口模块都具有较好的抗干扰能力。根据实际需要,一般情况下,PLC都有许多I/O接口模块,包括开关量输入模块、开关量输出模块、模拟量输入模块、模拟量输出模块以及其它一些特殊模块,使用时应根据它们的特点进行选择。
2.1 确定I/O点数
根据控制系统的要求确定所需要的I/O点数时?应再增加10%~20%的备用量,以便随时增加控制功能。对于一个控制对象,由于采用的控制方法不同或编程水平不同,I/O点数也应有所不同。
表2列出了典型传动设备及常用电气元件所需的开关量的I/O点数。
表2 典型传动设备及常用电气元件所需的开关量的I/O点数
电气设备、元件
电气设备、元件
Y-起动的笼型异步电动机
光电管开关
单向运行的笼型异步电动机
可逆运行的笼型异步电动机
单向变极电动机
三档波段开关
可逆变极电动机
单向运行的直流电动机
可逆运行的直流电动机
单线圈电磁阀
双线圈电磁阀
单向运行的绕线转子异步电动机
可逆运行的绕线转子异步电动机
2.2 开关量输入/输出
通过标准的输入/输出接口可从传感器和开关(如按钮、限位开关等)及控制(开/关)设备(如指示灯、报警器、电动机起动器等)接收信号。典型的交流输入/输出信号为24~240V,直流输入/输出信号为5~240V。
尽管输入电路因制造厂家不同而不同,但有些特性是相同的。如用于消除错误信号的抖动电路;免于较大瞬态过电压的浪涌保护电路等。此外,大多数输入电路在高压电源输入和接口电路的控制逻辑部分之间都设有可选的隔离电路。
在评估离散输出时,应考虑熔丝、瞬时浪涌保护和电源与逻辑电路间的隔离电路。熔丝电路也许在开始时花费较多,但可能比在外部安装熔丝耗资要少。
2.3 模拟量输入/输出
模拟量输入/输出接口一般用来感知传感器产生的信号。这些接口可用于测量流量、温度和压力,并可用于控制电压或电流输出设备。这些接口的典型量程为-10~+10V、0~+10V、4~20mA或10~50mA。
一些制造厂家在PLC上设计有特殊模拟接口,因而可接收低电平信号?如RTD、热电偶等?。一般来说,这类接口模块可用于接收同一模块上不同类型的热电偶或RTD混合信号。
2.4 特殊功能输人/输出
在选择一台PLC时,用户可能会面临一些特殊类型且不能用标准I/O实现的I/O限定?如定位、快速输入、频率等?。此时用户应当考虑供销厂商是否提供有特殊的有助于最大限度减小控制作用的模块。有些特殊接口模块自身能处理一部分现场数据,从而使CPU从耗时的任务处理中解脱出来。
2.5 智能式输入/输出
当前,PLC的生产厂家相继推出了一些智能式的输入/输出模块。一般智能式输入/输出模块本身带有处理器,可对输入或输出信号作预先规定的处理,并将处理结果送入CPU或直接输出,这样可提高PLC的处理速度并节省存储器的容量。
智能式输入/输出模块有高速计数器(可作加法计数或减法计数)、凸轮模拟器(用作绝对编码输人)、带速度补偿的凸轮模拟器、单回路或多回路的PID调节器、ASCII/BASIC处理器、RS—232C/422接口模块等。表3归纳了选择I/O模块的一般规则。
表3 选择PLC的I/O接口模块的一般规则
I/O模块类型
现场设备或操作(举例)
离散输入模块和I/O模块
选择开关、按钮、光电开关、限位开关、电路断路器、接近开关、液位开关、电动机起动器触点、继电器触点、拨盘开关
输入模块用于接收ON/OFF或OPENED/CLOSED(开/关)信号,离散信号可以是直流的,也可以是交流的
离散输出模块和I/O模块
报警器、控制继电器、风扇、指示灯,扬声器、阀门、电动机起动器、电磁线圈
输出模块用于将信号传递到ON/OFF或OPENED/CLOSED(开/关)设备。离散信号可以是交流或直流
模拟量输入模块
温度变送器、压力变送器、湿度变送器、流量变送器、电位器
将连续的模拟量信号转换成PLC处理器可接受的输入值
模拟量输出模块
模拟量阀门、执行机构、图表记录器、电动机驱动器、模拟仪表
将PLC处理器的输出转为现场设备使用的模拟量信号(通常是通过变送器进行)
特种I/O模块
电阻、电偶、编码器、流量计、I/O通信、ASCII、RF型设备、称重计、条形码阅读器、标签阅读器、显示设备
通常用作位置控制、PID和外部设备通信等专门用途
3 PLC存储器类型及容量选择
PLC系统所用的存储器基本上由PROM、E-PROM及PAM三种类型组成,存储容量则随机器的大小变化,一般小型机的最大存储能力低于6kB,中型机的最大存储能力可达64kB,大型机的最大存储能力可上兆字节。使用时可以根据程序及数据的存储需要来选用合适的机型,必要时也可专门进行存储器的扩充设计。
PLC的存储器容量选择和计算的第一种方法是:根据编程使用的节点数精确计算存储器的实际使用容量。第二种为估算法,用户可根据控制规模和应用目的,按照表4的公式来估算。为了使用方便,一般应留有25%~30%的裕量,获取存储容量的最佳方法是生成程序,即用了多少字。知道每条指令所用的字数,用户便可确定准确的存储容量。表4同时给出了存储器容量的估算方法。
表4 控制目的估算存储器容量的方法
代替继电路
M=Km(10DI+5D0)
DI为数字(开关)量输入信号;Do为数字(开关)量输出信号;AI为模拟量输入信号;Km为每个接点所点存储器字节数;M为存储器容量
模拟量控制
M=Km(10DI+5Do+100AI)
多路采样控制
M=Km[10DI+5Do+100AI+(1+采样点%26;#215;0.25]
4 软件选择
在系统的实现过程中,PLC的编程问题是非常重要的。用户应当对所选择PLC产品的软件功能有所了解。通常情况下,一个系统的软件总是用于处理控制器具备的控制硬件的。但是,有些应用系统也需要控制硬件部件以外的软件功能。例如,一个应用系统可能包括需要复杂数学计算和数据处理操作的特殊控制或数据采集功能。指令集的选择将决定实现软件任务的难易程度。可用的指令集将直接影响实现控制程序所需的时间和程序执行的时间。
5 支撑技术条件的考虑
选用PLC时,有无支撑技术条件同样是重要的选择依据。支撑技术条件包括下列内容:
(1)编程手段
●便携式简易编程器主要用于小型PLC,其控制规模小,程序简单,可用简易编程器。
●CRT编程器适用于大中型PLC,除可用于编制和输入程序外,还可编辑和打印程序文本。
●由于IBM—PC已得到普及推广,IBM—PC及其兼容机编程软件包是PLC很好的编程工具。目前,PLC厂商都在致力于开发适用自己机型的IBM—PC及其兼容机编程软件包,并获得了成功。
(2)进行程序文本处理
●简单程序文本处理以及图、参量状态和位置的处理,包括打印梯形逻辑;
●程序标注,包括触点和线圈的赋值名、网络注释等,这对用户或软件工程师阅读和调试程序非常有用。
●图形和文本的处理。
(3)程序储存方式
对于技术资料档案和备用资料来说,程序的储存方法有磁带、软磁盘或EEPROM存储程序盒等方式,具体选用哪种储存方式,取决于所选机型的技术条件。
(4)通信软件包
对于网络控制结构或需用上位计算机管理的控制系统,有无通信软件包是选用PLC的主要依据。通信软件包往往和通信硬件一起使用,如调制解调器等。
6 PLC的环境适应性
由于PLC通常直接用于工业控制,生产厂都把它设计成能在恶劣的环境条件下可靠地工作。尽管如此,每种PLC都有自己的环境技术条件,用户在选用时,特别是在设计控制系统时,对环境条件要给予充分的考虑。
一般PLC及其外部电路(包括I/O模块、辅助电源等)都能在表5所列的环境条件下可靠工作。
表5 PLC的工作环境
工作温度范围为0~55℃,最高为60℃,贮存温度范围为-40~+85℃
相对湿度5%~95%*无凝结霜)
振动和冲击
满足国际电工委员会标准
采用220V交流电源,允许变化范围为-15%~+15%,频率为47~53Hz,瞬间停电保持10ms
周围空气不能混有可燃性、爆炸性和腐蚀性气体
7 结束语
随着科技的不断进步,PLC的种类日益繁多,功能也逐渐增强。文章中尽管归纳了一些选用PLC的方法,但在实际工作中还一定要依据实际情况做出适当的调整,以便设计出满足期望的控制系统。
编辑: 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
微信扫一扫加关注 论坛活动 E手掌握
微信扫一扫加关注
芯片资讯 锐利解读
大学堂最新课程
热门资源推荐
频道白皮书当前位置: >>
Instruction set of CPM1A serials PLC回到主目录 ?掌握PLC的基本指令、编制梯形图的注意事项;??掌握分支程序的处理方法;掌握定时器/计数器指令;数据比较CMP指令; 数据传送MOV等指令。
? 能够读懂梯形图程序和语句表程序,并能够互相转换; 能够编写简单的梯形图程序。 §3-1 概述 outline1. CPM1A指令分类 1. CPM1A Instruction classification 基本指令 直接对输入、输出进行操作。Basic instructions应用指令 Application instructionsOperate input and output directly 进行数据处理、运算和程序控制等操作。do the following operations :data processing, operation and program control 2. CPM1A指令格式助记符:表示指令的功能 指令码:是指令的代码 操作数:提供指令执行的对象或数据助记符(指令码) [操作数1][操作数2][操作数3]2. CPM1A instruction format助记符:specify instruction functionality助记符(instruction code)[operand 1] [operand 2] [operand 3]instruction code:the codes of instructionOperand: supply the object or data that instruction executes ★ 关于操作数的讨论操作数可以是通道号、继电器号或常数。 操作数的个数,取决于各种指令的需要。 操作数设为常数时,在数据前面要加#号。★ discussion about operandsoperand can be channel number, relay number, or constant the number of operand lies on all kinds of instructions. When operand is set to be constant, a # should be added before the data. 操作数采用哪种进制,取决于指令的需要。 间接寻址的操作数用*DM××××来表示。 间接寻址的操作数,是以DM××××中的数据为地 址的另一个DM通道中的数据。 DM××××中 的 内容 必须是BCD码,且不得超出 DM区的范围。 which system the operand use, lies on the instructions. operands of indirect addressing is denoted with *DM××××Operands of indirect addressing is the data in another DM channel of whose address is the data in DM××××.The content of DM×××× must be BCD code, and should not exceeds the range of DM section. 例如,计数器指令的格式为For example, the format of counter instruction isCNT000 SV计数器 的编号 操作数If SV = 200表明000号计数器的设定值是200通道中的内容。indicate that the value of 000 counter is the content of 200 channel.if SV= # 0200 表明000号计数器的设定值是常数200。Indicate the value of 000 counter is constant 200. 例如:计数器的指令格式为 CNT000*DM1000 设DM1000的内容为0010 设DM0010的内容为2500则 000号计数器的设定值是2500DM0000~DM1023、 DM6144~DM6655间接寻址的操作数。如果设DM1000的内容为9990如果设DM1000的内容08FA超出DM范围非BCD码 For example:the counter instruction format isCNT000suppose the content of DM1000 is 0010 suppose the content of DM0010 is 2500*DM1000Operand of indirect addressingthen the value of 000 counter is 2500DM0000~DM1023、 DM6144~DM6655if the content of DM1000 is 9990is the content of DM1000 is 08FAExceed DM rangeNon BCD code 3. 执行指令对标志位的影响p.30SR区的2是指令执行结果的标志位。某些指令的执行结果影响标志位2的状态。标志位25503 ~25507的状态表示的意义要牢记。 3. influence on flag bitp.302 in SR section is the flag bits of instruction execution resultsCertain instruction execution results have effect on the status of 2 flag bits Keep in mind the meaning of 25503 ~25507 flag bits ER(25503): 出错标志位。 25503 ON时,表示当前执行的程 序出错且停止执行。CY(25504):进位标志位GR(25505):大于标志 EQ(25506):等于标志 LE(25507):小于标志当执行指令END(01) 时,以上标志均置为 OFF ER(25503): error bit。When 25503 is ON,indicate the program being executing go error and stop running.CY(25504):carry bitGR(25505):greater than bit EQ(25506):equal bit LE(25507):less than bit 4. 指令的微分、非微分形式 微分型:要在指令的助记符前加标记@。 两种指令的区别 4. differential and non-differential form Differential form:add marker @ before 助记符 Differences between two forms 非微分型指令: 只要其执行条件为ON,每个扫描周期都执行该指令。 微分型指令: 仅在指令的执行条件由OFF变为ON时才执行一次。 Non-differential instructions: As long as execution condition is ON, this instruction is executed every scanning period. differential instructions: Only execute once when the executing condition turn from OFF to ON 基本指令是最常用的指令 要记: 指令的功能、格式、符号和代码; 指令操作数的范围; 执行各指令对标志位的影响。basic instructions are most frequently usedKey points: Instruction functionality, format, symbol and code; instruction operand range; influence on every flag bit §3-2-1 常用的基本指令 1. LD 和 LD NOT 指令 功能LD: 常开触点与母线相连LD NOT:常闭触点与母线相连LD、LD NOT只能以位为单位进行操作 不影响标志位N NN:继电器编号 IR,SR,HR,AR,LR,TC,TR §3-2-1 frequently used basic instructions1. LD and LD NOT functionLD: opening spot connected with generatrixLD NOT:closing spot connected with generatrixLD、LD NOT can only be operated in bit Do not affect flag bitsN NN:relay serial numbers IR,SR,HR,AR,LR,TC,TR IR,SR,HR,AR,LR,TC,TR2. OUT 和 OUT NOT 指令功能OUT:指令输出逻辑运算结果 OUT NOT:逻辑运算结果取反后输出OUT 、 OUT NOT: 只能以位为单位进行操作不影响标志位N NN:继电器编号 IR,SR,HR,AR,LR,TC, TR IR,SR,HR,AR,LR,TC,TR2. OUT and OUT NOTfunctionOUT:output logic calculation results OUT NOT:output logic calculation results after reversed OUT 、 OUT NOT: can only do operation in bitDo not affect flag bitsNNN:relay serial numbers IR,SR,HR,AR,LR,TC, TR 说明note(1). 若输出位为PLC的输出点,则运算结果输出到PLC外部 若输出位为PLC的内部继电器,则运算结果为中间结果, 不输出到PLC外部。if the output bit is PLC output point, calculation result output toPLC exterior. If output bit is PLC internal relay, calculation result is midway result without being output to the exterior. (2).线圈并联输出时,可以连续使用OUT、OUT NOT。 when the loop output in parallel ,OUT、OUT NOT can be used in series. 例:00000 LD 00000OUTLD01000NOT 00001OUT NOT 01001连续 使用0000101002OUT01002 IR,SR,HR,AR,LR,TC,TR3. AND , AND NOT functionAND:表示常开触点与前面的触点电路相串联,或者说AND后 面的位与前面的状态进行逻辑“与”运算。 AND:denote opening spot connected with anterior spot in series, that is to say, the bit after AND does logic Dand‖ operation withanterior status. AND NOT:表示常闭触点与前面的触点电路相串联,或者说 AND NOT后面的位取“反”后与前面的状态进行逻辑“与”运 算。 N NN:relay number seriels IR,SR,HR,AR,LR,TC AND NOT:denote closing spot connect ,that is to say, the bitafter AND NOT get reversed and do logic “and” operation with theformer status. 例:01000LDAND OUT00000 000000100001001LD OUTAND NOT 01000说明note(1). AND、AND NOT只能以位为单位进行操作,且不影响标志。AND、AND NOT can only be operated in bit,and do not affect flag.(2). 串联的触点数没有限制。 No limitation with series-wound spot numbers. 例:两种输出形式
0100101000(a)连续输出(b)连续输出次序颠倒以上两图逻辑功能相同,但是(b)图用语句表编程繁琐,应尽量避免。(a)连续输出 LD AND OUT AND OUT
01001 (b)连续输出次序颠倒 LD 00000AND00001 00000连续 输出AND OUT LDAND 00001OUT 01000 For example:two output forms
0100101000(a)output in series(b)output in series with reversed sequenceThe above figures have the same logic functionality, but(b)using sentence table program which is trivial and should be (b)连续输出次序颠倒 avoided. (a)连续输出LD AND OUT AND OUT
01001 LD 00000output in seriesANDAND OUT LD00001 00000AND 00001OUT 01000 IR,SR,HR,AR,LR,TC,TR4. OR , OR NOT functionOR:表示常开触点与前面的触点电路相并联,或者说OR后面 的位与前面的状态进行逻辑“或”运算。OR:denote open spot connected with the anterior spot in parallel, that is to say, the bit after OR do “OR” operation with former status. OR NOT:表示常闭触点与前面的触点电路相并联,或者说OR NOT后面的位取“反”后与前面的状态进行逻辑“或”运 算。N NN:继电器编号 IR,SR,HR,AR,LR,TC说明(1). OR、OR NOT只能以位为单位进行操作,且不影响标志。(2). 并联的触点数没有限制。 OR NOT:denote closing spot connected with the anterior circuitin parallel, that is to say, the bit after OR NOT get reversed andthen do logic “OR” operation with the former status.NNnote(1). OR、OR NOT can only beN:继电器编号IR,SR,HR,AR,LR,TCoperated in bit,and do not affect flag.(2). No limitation with series-woundspot numbers. 例:
LD OR OUT LD OR NOT
00003OUT01001 5. 结束指令END(01)END(01) 无操作数 无执行条件功指令一概不执行。能表示程序结束。是程序的最后一条指令。END(01)后面的利用END指令插在各程序段之间,可以进行分段调试。 5.END(01)END(01) Without operand Without execution conditionfunctionit’s the last instruction of a program, denoting the end of aprogram, instructions after END(01) are not executed withoutexception. Using END instruction which is inserted between program sentences, to debug section by section. 若程序中没有END指令,则PLC不执行程序,并显示出错信 息:“NO END INST‖。 执行END指令时,ER、CY、GR、EQ、LE标志置为OFF。PLC does not execute program without the instruction END, and display the sentence:“NO END INST”。When the instruction END executes , ER、CY、GR、EQ、LE flag bits are set OFF 6.空操作指令NOP(00)功能:用来取消某一步操作。常用于修改梯形图。无梯形图符号、无操作数例如: 00001改为:00000010001LD000001LD0000023AND 00001OUT 0100023NOP(00)OUT 01000使步序号变更更少。 6.NOP(00)Function: to cancel a certain operation, commonly used to modify trapezoid diagram.without trapezoid diagram symbol and operand 00001example:00000 Convert to :010001LD000001LD0000023AND 00001OUT 0100023NOP(00)OUT 01000Make step sequence much less
§3-2-2AND LD , OR LD1. AND LD功能:用于逻辑块串联连接,即对逻辑块进行逻辑“与”的操作。Function: be used to logic block series connection, that is to do logic “and” operation on logic blocks. 注 意note(1). 每个逻辑块都以LD或LD NOT 指令开始。 (2). AND LD指令单独使用,后面没有操作数。 (3).使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过8。(1). Every logic block starts with LD or LD NOT (2). AND LD is employed solely without operand. (3).two usage of this instruction: 分置法and后置法. The sameresults can be obtained using the two methods, but there is no restrictions on the numbers of spot, while the numbers is limited within 8 when the latter method applied. 例: 0000220000方法1:分置法LD AND OR NOT LD OR AND LD LD OR NOT
00004方法2:后置法LD AND 对逻辑块多 少无限制 No restriction on the numbers of logic blocksOR NOTLD OR LD OR NOT AND LD AND LD OUT00002 AND LD前面的 逻辑块数少于8AND LDOUT 20000The numbers of logic block before AND LD is less than 820000 2. OR LD功能:用于逻辑块并联连接,即对逻辑块进行逻辑“或”的操作。function: be used to logic block parallel connection, that is to do “OR” operation on logic blocks. 注 意note(1). 每个逻辑块都以LD或LD NOT 指令开始。 (2). OR LD指令单独使用,后面没有操作数。(3).使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制 的,而采用后置法时触点组数不能超过8。(1). Every logic block starts with LD or LD NOT (2). OR LD is employed solely without operand. (3). two usage of this instruction: 分置法and后置法. The sameresults can be obtained using the two methods, but there is no restrictions on the numbers of spot, while the numbers is limited within 8 when the latter method applied. 例: 01001方法1:分置法LD AND NOT LD AND OR LD LD NOT AND NOT OR LD OUT
01001方法2:后置法LD AND NOT LD AND LD NOT AND NOT OR LD OR LD OUT
01001 例:利用以上指令对复杂梯形图编程example:make program for complex trapezoid diagram using above mentioned instructions01005Firstly, find out logic block 先找出逻辑块LD OR
AND NOT 00002LD AND NOT OR LD LD AND OR LD0000000002000030000400001200020000500006LD AND OR AND LD LD AND00007000082000020001OR LDOUT §3-2-3置位(SET)和复位(RESET)指令 function SET N RESET N N:relay serial numbers IR,SR,HR,AR,LR,SET:当执行条件为ON时,使指定的继电器置位ON且保持 。 当执行条件为OFF时,指定的继电器不改变原状态。SET:when execution condition is ON, set ON for specified relay and hold. When execution condition is OFF, the specified relay dose not change. RESET:当执行条件为ON时,使指定的继电器复位为OFF。当执行条件为OFF时,指定的继电器不改变原状态。00000LDSET 20000 SET LD00000 2000000003RESET 20000RESET 20000RESET:when execution condition is ON, set OFF for specified relay. When execution condition is OFF, the specified relay dose not change. §3-2-4 KEEP(11)功 能 当 S=ON,R=OFF时,继电器N 置位输入 保持为ON状态,即使S由ON变为复位输入Set inputS RKEEP(11) NOFF,继电器N的ON状态也不变。reset input N:继电器编号IR,SR,HR,AR,LRwhen S=ON,R=OFF, relay N keeps ON status,even if S changes from ON to OFF, the ON status of relay N 当 R=ON时,继电器N的状态为OFF when R=ON, relay N status is OFFKEEP(11) LD HR0000 HE0000LDKEEP(11) HR00000 注 意note(1). KEEP(11)指令功能和SET、RESET指令的功能类似,但KEEP指令是一个整体,中间不允许插入任何指令。(1). The functionality of KEEP(11)is similar with that ofSET、and RESET, but KEEP is a whole, any instructions are forbid to plug in. (2). KEEP(11)指令完成一个起停保电路的功能。 00002 HR HR 00003 HE0000(3). 当用KEEP(11)指令对保持继电器编程时,可实现断电保持的功能。When program for hold relay using the instruction KEEP(11),power down hold functionality can be achieved.
§3-2-5 上升沿微分指令DIFU(13) 下降沿微分指令DIFD(14)§3-2-5 rising edge differential instruction DIFU(13) descending edge differential instruction DIFD(14)功 能DIFU(13):执行条件由OFF变为ON时 ,指定继电器N在一个扫描周期为ON。DIFU(13): when execution condition changes from OFF to ON, specified relay N is ON during one scanning period. DIFD(14):执行条件由ON变为OFF时,指定继电器N在一个扫描周期为ON。DIFU(13) DIFD(14) N NN:继电器编号 IR,SR,HR,AR,LRDIFD(14): when execution condition changes from ON toOFF, specified relay N is ON during one scanning period DIFU(13)和 DIFD(14)指令的接通时间只有一个扫描周期。The ON duration of DIFU(13)and DIFD(14)is only one scanning period.00000DIFU(13) 20000 DIFD(14) 20001 20001 Ts Ts 3-2-6 基本编程规则和编程方法一. 基本编程规则1. 梯形图的每一行都是从左侧母线开始,线圈和指令应放在最右边。000000100000001错误 正确 0000125313指令2. 线圈和指令不能直接与左侧母线连接(除少数没有执行条件的指令,如 END等)。如果必须时,可以通过SR区的常ON标志25313的触点连接。 3-2-6 basic program rules and techniques一. basic program rules 1. Each line of trapezoid diagram start from nearside generatrix, loop and instruction should be put on right side.000000100000001wrongright 0000125313指令2. Loop and instructions should not be connected with nearside generatrix directly (except for few instructions without execution condition, such as END). If must can connect via the spot of ON flag 25313 in SR section. 3. 在同程序中,同一编号线圈使用2次或多次,称为双线圈输出。这时前面的 输出无效,最后一次输出才是有效输出,因此尽量避免出现双线圈输出。4. 触点不能画在垂直路径上 5. 梯形图以END指令结束,否则不执行。 3. in the same program,loops of the same serial number are used two timers or more, called double-loop output. Here the former output is invalid, the output of last time is valid output, so avoid double-loop output at the best. 4. Spots should not plot on vertical route. 5. Trapezoid diagram ends with END instruction, otherwise inexecution. 双线圈输出易引起逻辑分析上 的混乱 Double-loop output is apt to bringing logic analysis disorder00000010002000001000设:00000为ON,20000为OFF,01000最终为OFF
设:00000为ON,00001为OFF,第一支路:01000得电第二支路:01001得电 第三支路:01000失电I/O刷新01001 ON 01000 OFF从第二支路看,01001要想得电01000必须为ON,由此看出上图逻辑混乱。For the second branch, if 01001 is ON, 01000 must be ON, so the above circuit figure is logically disorder. 4. 触点不能画在垂直路径上010005 1 2 010002 5 4 4413523 二. 基本编程方法 1. 指令和线圈可以并联输出。2. 触点组与触点相并联时,将单个触点放在下面。(节省一个OR LD语句)图3.131 2 3
01000 31. Instruction and loop can output in parallel.2. When spot set connected with spot in parallel, lay singlespot underneath. ( save one OR LD sentence)figure 3.13 3. 并联触点组与几个触点相串联时,并联触点组放在左面。 (节省一个AND LD语句)图3.141 2 3 2 3 01000 1010003. When parallel spot set connect with several spots in series, parallel spot set is laid left(save one AND LD sentence)figure 3.14 4. 若一条指令在PLC上电后只执行一次,则将SR区的25315作 为执行条件。5. 若有些梯形图难以用语句表编程,可以重新根据逻辑关系安 排梯形图结构,使之能够用基本指令的语句表编程。如图3.164. if one instruction only be executed once after PLC power on, make 25315 in SR section as the execution condition. 5. If some trapezoid diagrams are hard to program usingsentence table??, you can rearrange their structures according to logical relation, to make them capable of being programmed with using sentence table .As figure 3.16 6. 当某梯级有两个分支时,若其中一条分支从分支点到输出线圈之间无触点,该分支应放在上方,这样可以使语句表的语句 更少(连续输出)。 7. 尽量使用操作数少,执行时间短的指令,以缩短扫描周期, 提高I/O响应速度。 6. When there is two branches within a certain thread, if one of those branches has no spot from separating point to output loop, this branch should be laid above, so as to shorten sentences insentence table (output in series)。7. Using the instructions of less operands, shorter execution time as possible as you can, so as to shorten scanning period, increase I/O response speed. §3-3 常用的应用指令 commonly used application instructions§3-3-1 分支/分支结束指令(IL(02)/ILC(03))功能:用来处理梯形图中的分支电路,IL和ILC一起使用。 若IL的执行条件为 ON,位于IL和ILC之IL(02) ILC(03)间的程序正常执行。§3-3-1 branch/branch end instructions(IL(02)/ILC(03))Function: used to deal with branch circuit in trapezoid diagram, IL and ILC are used together. if execution condition of IL is ON, the program between IL and ILC executes normally 若IL的执行条件为OFF,位于IL和ILC之间的程序不执行。 此时IL和ILC之间各内部器件的状态为: 所有OUT和OUT NOT输出位为:OFF 所有定时器:复位 所有计数器、移位寄存器、有保持功能指令的操作位都保持以 前状态 if the execution condition of IL is OFF, the program between IL and ILC does not execute. Here, the status of every internal equipments between IL and ILC is: All OUT and OUT NOT output bits: OFF All timers: reset All counters, shift registers, operation bits with hold functionality keep the former status. 使用分支/分支结束指令(IL(02)/ILC(03))时应注意: Be careful when using branch/branch end instructions (IL(02)/ILC(03)): (1). 不论IL前面的执行条件为OFF或ON,PLC都要对IL― ILC中间的程序进行处理,要占用扫描时间。 (2). IL和ILC可以成对使用,也可以多个IL指令配一个ILC 指令,但不允许嵌套。 IL---IL…..ILC (允许) IL IL…ILC ILC(不允许)(1). No matter the former execution condition of IL is OFF or ON,PLC should transact the program between IL and ILC, which will take up scanning time. (2). IL and ILC can be used in pair, or several IL instructions match one ILC, but no nesting allowed. IL---IL…..ILC (allowed) IL IL…ILC ILC(unallowed) 例1:分支电路如下:Branch circuit is as follows IL (02) 00001 LD IL(02) LD
01001 OUT LD NOT 01002 OUT
00000IL(02)A 00001000020100001000000030000401002LD00003AND NOT 00004 ILC(03)
00005ILC(03)01003OUT ILC(03) LD OUT01002可见,00000为后面3个分支的执行条件 Obviously, 00000 is the execution condition of the following three branches. 例2:分支电路如下:00000 IL(02) 0000100000IL(02)01000LD IL(02) LD OUT00000A000010000200002 IL 00003B01000 00002010010000401002LDIL(02) 0000301001IL(02)LD OUT
0000400005ILC (03)010030000401002LDOUT01002ILC ILC(03) 0000501003ILC(03) LD OUT 说明:连锁嵌套,多个IL公用一个ILC,在程序检查时会出现错误信息,但不影 响程序执行。 Declaration: chain nesting, several ILs use one ILC, error info will come outwhen program checked, yet without affect program running. 注意区别并联输出、连续输出和复合输出的结构及其编程方法Pay attention to differentiating the structures and program techniques of parallel output, serial output and compound output. 0000001000AA00001上支路无触点; 下支路有触点。
Upper branch has spot;Lower branch has not01001并联输出 输出线圈并联Output loop in parallel连续输出后一个触点支路与前一个触点为“与”关系The latter spot branch and the former one is in DAND‖re输出为并列关系,执行条件均为00000Outputs are in parallel relationship, allexecution condition is 00000 ILA用分支指令01002use branch instructionILC复合输出 compound output分支点上下支路均有触点 both upper and down branches of branch point have touch points §3-3-2 暂存继电器TR (TR0~TR7)处理梯形图的另一种方法。把一个TR置于一个分支点处,则当前结果就会存在指定TR中。another method of dealing with trapezoid diagram. put one TR at one branch point, and the current result stored at TR.TR0
01002 LD OUT AND OUT LD AND
01002 TR0 TR0
TR0 00002 TR0
OUTLD AND OUT01001TR0
说 明(1). 同一程序段中,同一个TR号不能重复使用;在不同程序 段中, 同一个TR号可以重复使用。 (2).TR不是编程指令,只能和LD或OUT等指令一起使用。 §3-3-3 跳转/跳转结束指令(JMP(04)/JME(05))?. 当 JMP N 的执行条件为OFF时,跳过JMP N 和JME N 之间的程序段,转去执行JME N 后面的程序。 JMP N 和JME N 之间的所有输出、定时器和计数器的状态保持不变,JMP 和JME之间的程序不执行,不占用扫描时间。?. 当 JMP N 的执行条件为ON时,执行JMP N 和JME N 之间的程序段。JMP(04) NN:跳转号 jump number 00~49JME(05) N ?. when JMP N executing condition is OFF, jump over the program segment between JMP N and ME N, and execute theprogram segment behind JME N.all the output between JMP N and JME N, state of timer and counter keep unchanged. no execution of the program between JMP and JME, do not take up scanning time. ?. when JMP N’s execute condition is N, execute the programsegment between JMP N and JME N. 说明 跳 转 类 型 N=00note可以在程序中使用多次 CPU占时多N≠00每个跳转号只能在程序中使用一次CPU占时少N=00 jump type N≠00can use several timesCPU take up more time each jump number can only be used once CPU take up less time 多个JMP N 可以公用一个JME N ,JMP―JMP―JME。 跳转指令可以使用嵌套,但必须是不同的跳转号的嵌套。如:JMP 00―JMP 01----JME01---JME00.several JMP N can use the same one JME N ,JMP― JMP―JME。 jump instruction can use嵌套, but must be嵌套 of different jump numbers.for example : JMP 00―JMP 01----JME01---JME00. §3-3-4定时器和计数器指令使用定时器/计数器时应注意的问题: 1. 定时器和计数器在同一个TC区,它们共同使用编号000~127,所以在同一程序中它们的编号不能重复使用。2. 当SV为通道时(必须是BCD码),改变通道内的数据,其设定 值即改变,从下一个扫描周期开始以新的设定值开始工作§3-3-4 timer and counter instructions pay attention to the following questions:1. timer and counter are in the same TC section, they togetherly use serial numbers 000~127, so in the same program their numbers can not be repeatedlyused.2. when SV is channel(the data in channels must BCD code),change the data, and their value will be changed, work with the new value from the next scanning period. 3. 间接寻址DM通道不存在,是指以DM的内容为地址的通道不存在。4. 定时器没有掉电保持功能,计数器有掉电保持功能。 5. 当扫描时间TS&0.1s时,定时器TIM会不准确;当扫描时间 TS&0.01s时,定时器TIMH会不准确。3. when indirect addressing channel DM does not exist, it meansthe channel whose address named after DM’s content does not exist. 4. timer does not have drop power function, while counter does. 5. when scanning duration is TS&0.1s, timer TIM when it is TS&0.01s, timer TIMH may be not right. 1. 定时器指令―TIM timer instructionTIM N SVN:定时器TC号000~127 SV:定时器设定值(字,BCD码) IR,SR,HR,AR,LR,DM,*DM,#功能:通电延时型 当 定时器的执行条件为OFF时,定时器输出为OFF。function:power on delay typewhen timer executing condition is OFF, timer output isOFF. 当定时器的执行条件为ON时,定时器开始定时,定时 时间到,定时器输出为ON。当定时器的执行条件变为OFF 时,定时器输出随之变为OFF。 定时器最小定时时间单位为0.1秒,定时范围0~999.9秒, SV取值范围为 when timer executing condition is ON, timer begins timing, when time is up, the output is ON. while the executing condition changes to OFF, the output changes to OFF. the smallest timing unit is 0.1s, with the range 0~999.9s, and the value range of SV . 例1:定时器TIM000,SV=15秒,定时到01000得电。00000TIM 000 #0150 TIM000 01000 LD 00000TIMLD OUT000#0150 TIM000 0100000000TIM00015s01000例2:定时器TIM000,SV=IR200中数据0050,定时到01000得电00000 TIM 000 200 TIM000 01000LD TIM0LDOUTTIM00001000 example 3:timing duration extension. 例3:定时器定时时间的扩展。00000 TIM 000 SV1 TIM000 TIM 001 SV2 TIM001 0100000000TIM000SV2SV1TIM00101000 example 4:switch-on delay ON and switch-off OFF control. 例4:接通延时ON和接通延时OFF的控制。00000 TIM 000 #0600 TIM000 01000 TIM000 0100101000010010000060sTIM000接通延时ON 接通延时ON接通延时OFF (1).定时器没有断电保持功能,断电时,定时器复位。 注 意 (2).出错标志25503:①.当SV不是BCD码时; ②.间接寻址DM通道不存在时note(1).timer does not have drop power hold function, it will reset provided power off. 2. 高速定时器指令--TIMH(15)TIMH N N:定时器TC号 000~127 SV:定时器设定值(字,BCD码) IR,SR,HR,AR,LR,DM,*DM,#SV功能:同TIM?. 定时器最小定时时间单位为0.01秒,定时范围0~99.99秒, SV取值范围为,SV必须是BCD码。 3. 计数器指令CNTCP RCNTNN:计数器TC号 000~127 SV:计数器设定值(字,BCD码) IR,SR,HR,AR,LR,DM,*DM,#SVCP为脉冲输入端;R为复位端功 能当R=ON时,不计数,当前值PV=SV;当R由ON→OFF时,开始计数。 当R=OFF时,CP端由OFF →ON时,计数器减1,计数器减 到0时,停止计数,计数器输出变为ON。 (1).计数器编程时,先编写计数器脉冲输入端CP,再编写复位端R, 最后编CNT指令。注 意(2).计数器具有断电保持功能,断电时计数器当前值保持不变。(3).ER标志25503 ①.当SV不是BCD码时;25503 置位 为ON②.间接寻址DM通道不存在时; 例:计数器的使用 CNT 004 #0150 CNT000 01000 LD LD 00000PV=…CNT 004#0150 LD CNT004…32100000101000OUT 01000例:计数器的定时功能LD2550200001 CNT 000 #0150 CNT000 01000 #0150LD25502为1s脉冲,当计数 器计满150个脉冲时,所 用的时间正好是150s。CNT 000 LD CNT000OUT 01000 例:计数器容量的扩展 CNT000 CNT000 00001 CNT001 01000 CNT 001 SV2 CNT 000 SV11sCNT000SV1SV1…… …Ts …00SV1SV10CNT001SV2*SV101000接通一个扫描周期 #3. 可逆计数器指令--CNTR(12)ACPCNTR(12)N:计数器TC号 000~127 SV:计数器设定值(字,BCD码) IR,SR,HR,AR,LR,DM,*DM,#SCPRNSVACP加计数脉冲输入端; SCP减计数脉冲输入端;R为复位端 功 能当R=ON时,不计数,当前值PV=0000;CNTR输出为OFF。 两个计数脉冲输入端同时为ON,即ACP、SCP均为ON时,不计数 当R=OFF时,可以计数 ACP输入端由OFF变为ON计数器加1; SCP输入端由OFF变为ON计数器减1。 ?.对于ACP,在PV=SV时,再加1,PV=0000,CNTR输出为 ON,再来一个脉冲,PV=0001,CNTR输出为OFF,循环加计数。即产生进位输出一个计数周期的ON。?.对于SCP,在PV=0000时,再减1,PV=SV,CNTR输出为 ON,再来一个脉冲,PV=SV-1,CNTR输出为OFF,循环减计 数。即产生借位输出一个计数周期的ON。 例1:SV=150,R=OFF,ACP、SCP、CNTR之间的关系如下(计数功能) ACPPV= 147 148 149 150 0 1 2 3SCPPV= 3 2 1 0 150 149 148 147CNTR 例2:可逆计数器的循环定时功能
CNT000 01000 CNTR 000 HR00按下0为ON, 为加计数作准备。加计数,对1s脉冲进行计数, 当PV=(HROO)时,输出一 个计数周期的ON信号,然后重 新从0开始进行加计数。上电第一个扫描周期, 25315位ON,CNTR复位 例3:循环计数器容量的扩展
CNT000 CNT001 25315 CNT 001 SV2 CNTR 000 HR00循环定时器循环定时时间=(HR00)*(SV2)扩展循环定 时器 注 意(1). 可逆计数器编程时,先编写加计数脉冲输入端ACP,再编 写减计数脉冲输入端SCP,后编写复位端R, 最后编CNTR指令。(2). 可逆计数器具有断电保持功能,断电时计数器当前值保持不变。(3). 可逆计数器只在产生进位或借位时输出一个计数周期的ON。(4). ER标志25503:①.当SV不是BCD码时; ②.间接寻址DM通道不存在时;25503置 位为ON返回 数据传送指令: 9种 数据比较指令:4种 §3-4-1数据传送指令1. 传送指令-MOV(21)/@ MOV(21)S:源数据MOV(21) S D 条件满足时,每个 扫描周期都执行@MOV(21) S DIR,SR,HR,AR,LR,TC,DM,*DM,#D:目的通道IR,SR,HR,AR,LR,DM,*DM(微分指令)条件由OFF 变ON时,执行一次功能:执行条件为ON时,将S中的数据传送到目的通道D中。S中数据不变。例:00000 MOV(21) #0196 DM0000LD00000#01960196MOV(21) #0196 DM000DM000 0 1 9 6 例:用MOV指令修改定时器的值@MOV(21) #0100 LR00 @MOV(21) #0050 LR00 TIM 000 LR00TIM000000010000000000=ON,00001=OFF,则(LR00) = #0100,TIM000定时10s0000000001000010000000000010000000100001=ON,00000=OFF,则(LR00) = #0050,TIM000定时5s 说 1. 出错标志位25503:*DM通道不存在时为ON,此时该指令不执行。 明 2. 相等标志位25506:执行指令后,D中的数据为0000,则25506为ON。2. 取反传送指令-MVN(22)/@ MVN(22)S:源数据MVN(22) S D@MVN(22) S DIR,SR,HR,AR,LR,TC,DM,*DM,#D:目的通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,将S中的数据取反后传送到目的通道D中。 S中数据不变。 例:00000LD0 DM000MVN(22)#0196 DM0000#01960196MVN(22) DM0000 F E 6 9说 1. 出错标志位25503:*DM通道不存在时为ON,此时该指令不执行。 明 2. 相等标志位25506:执行指令后,D中的数据为0000,则25506为ON。 §3-4-2数据比较指令1. 单字比较指令--CMP(20)CMP(20) C1 C2C1:比较数1IR,SR,HR,AR,LR,TC,DM,*DM,#C2:比较数2 IR,SR,HR,AR,LR,TC,DM,*DM,# 功 能当执行条件为ON时,比较C1、C2的大小,将比较结果送SR 区标志位。 . . . 当 C1 & C2 时,大于标志位 25505 为ON。 当 C1=C2 时,等于标志位 25506 为ON。 当 C1 & C2 时,小于标志位 25507 为ON。 例:00000 TR0 CMP(20) HR09 200
LD 00000 OUT TR0 CMP(20) HR09 200 LD TR0 AND 25505 OUT 01000 LD TR0 AND 25506 OUT 01001 LD TR0 AND 25507 OUT 01002(HR09) &(IR200)时 01000为ON (HR09) =(IR200)时 01001为ON (HR09) &(IR200)时 01002为ON
3. 块传送指令-XFER(70)/@ XFER(70)N:通道数(BCD码) XFER(70) @XFER(70)IR,SR,HR,AR,LR,TC,DM,*DM,#NS DNS DS:源数据块开始通道号IR,SR,HR,AR,LR,TC,DM,*DMD:目的数据块开始通道号IR,SR,HR,AR,LR,TC,DM,*DM 功能:执行条件为ON时,将S、S+1、…、S+N中的数据一一对应的传送 到D、D+1、…、D+N中。 说明:出错标志25503为ON,该指令不执行。 S1 2 3 4D1 2 3 4?. 通道数N不是BCD码,25503为ON?. S和S+N或D和D+N不在同一区域,25503为ON ?. *DM通道不存在,25503为ONS+13 4 5 6D+13 4 5 6S+N5 6 7 8…D+N5 6 7 8… 4. 块设置指令-BSET(71)/@ BSET(71)BSET(71) S St E @BSET(71) S St E S:源数据IR,SR,HR,AR,LR,TC,DM,*DM,#St:开始通道号IR,SR,HR,AR,LR,TC,DM,*DME:结束通道号IR,SR,HR,AR,LR,TC,DM,*DMSSt1 2 3 4功能:执行条件为ON时,将S中 的数据传送到从St到E的所有通 道中。1 2 3 4St+11 2 3 41 2 3 4…E 例:用@BSET指令改变定时器的当前值00000@MOV(21) #0100 HR00 TIM 000 HR00TIM00000000=ON,MOV指令把#0100 传送到HR00中,且只传送一次, TIM000定时10s0100000001@BSET(71) #0050 TIM000 TIM00000001=ON,@BSET指令把#0050传送到 TIM000中,TIM000 的当前值立即变为 #0050,TIM000 从0050开始,每隔0.1秒 减1,直到当前值减为0000为止。由于 HR00中的数据没有改变,下次定时的设 定值仍然是#0100 说明执行一次MOV指令,只能向一个通道传送一个字,而执 行一次BSET指令,可以向多个通道传送同一个字。 当用通道对TIM/CNT进行设定时,用MOV和BSET指令 都可以改变定时器/计数器的设定值,但使用BSET指令可以 改变 TIM/CNT的当前值,而MOV或MVN指令不能改变 TIM/CNT的当前值。 出错标志25503为ON,该指令不执行。(1). 开始通道St和结束通道E不在同一数据区;25503为ON(2). St & E ,25503为ON; (3). *DM通道不存在, 25503为ON 5. 数据交换指令-XCHG(73)/@ XCHG(73)E1:交换数据1XCHG(73) E1 E2@XCHG(73) E1 E2IR,SR,HR,AR,LR,TC,DM,*DME2:交换数据2IR,SR,HR,AR,LR,TC,DM,*DM功能:执行条件为ON时,将E1和E2中数据交换。E1E2说明:*DM通道不存在, 25503为ON ,该指令不执行。 6. 单字分配指令-DIST(80)/@ DIST(80)DIST(80) S DBs C @DIST(80) S DBs CS:源数据IR,SR,HR,AR,LR,TC,DM,*DM,#DBs:目标基准通道IR,SR,HR,AR,LR,TC,DM,*DMC:控制数据(BCD码)IR,SR,HR,AR,LR,TC,DM,*DM,#功 能 根据控制数据C的内容,DIST指令可进行单字数据分配 进栈操作 (1). 单字数据分配 当C的bit15~bit12 ≤ 8 时,DIST将S的内容送到DBs+C中。 即DBs+C决定目标通道。例:00000LDDIST(80) 200 DM DMDIST(80)若IR200的内容为为ONC的bit15~bit12 ≤ 8∴ DBs+C为 DM=DM0008 注意:DBs和DBs+C必须在同一数据区。IR2001 2 3 4DM00081 2 3 4 (2). 进栈操作 当C的bit15~bit12 =9 时,即C=时,DIST生成 一个堆栈。C的低3位(000~999)指定堆栈的通道数(堆栈深 度),DBs的内容为堆栈指针。 操 作 当执行条件为ON时,进行入栈操作,将S的内容复制到DBs+堆栈指针+1的通道中,然后堆栈指针(DBs的内容)+1。 注 意DIST指令在每个扫描周期执行一次,所以使用微分形式,或和DIFU、 DIFD一起使用,以控制执行的次数。 使用DIST指令进行堆栈操作前,务必要初始化堆栈指针,即初始化DBs的内容。 例:00000LD@DIST(80)00000FIR200F F F@DIST(80)S C DBs200DM200DMIR2169 0 0 5DM00000 0 0 0C的bit15~bit12 =9 ,进行入栈操作。堆栈指针为DM0000的内容 (0000),堆栈的通道数为005,即DM0001~DM0005。IR200 IR216 DM0000 DM0001 DM0002 DM0003 DM0004 FFFF 9005000000 0000第一次执行DM0000 DM0001 DM00020001FFFF 00 0000第2次执行DM0000 DM0001 DM00020002FFFF FFFF00堆栈指针加1DM0003 DM0004 DM0005堆栈指针加1DM0003 DM0004 DM0005DM00050000 说 明出错标志25503:有下列情况之一时为ON,此时该指令不执行。?. 控制数据C中的偏移(单字数据分配)或堆栈长度(进栈操作)不是BCD码 ; Cbit15~Cbit12 ≤ 8 时,DBs和DBs+C不在同一数据区; Cbit15~Cbit12 = 9 时,DBs和DBs+(C的低3位)不在同一数据区;堆栈指针+1的值超过堆栈长度。*DM通道不存在。相等标志25506:S 的内容为0000时为ON。 7. 数据调用指令-COLL(81)/@ COLL(81)COLL(81) SBs C D @COLL(81) SBs C D SBs:源基准通道IR,SR,HR,AR,LR,TC,DM,*DMC:控制数据(BCD码)IR,SR,HR,AR,LR,TC,DM,*DM,#D:目的通道IR,SR,HR,AR,LR,TC,DM,*DM功 能 根据控制数据C的内容,COLL指令可进行数据调用 出栈操作 (1). 数据调用当C=时,COLL指令将SBs+C通道的内容送到D中。SBs+C 1 2 3 4 D 1 2 3 4(2). 出栈操作先入先出 当C=时,按先入先出原则出栈,COLL指令将最早存入栈内的数据取出送到D中,堆栈指针减1。 后入先出当C=时,按后入先出原则出栈,COLL指令将最后存入栈内的数据取出送到D中,堆栈指针减1。 例:00000@COLL(81) DMLD000009IR2160 0 5@COLL(81) MCDM00000 0 0 5SBs200先入先出IR216DM0000 DM0001 DM0002 DM0003 DM0004 DM000590050005 AAAA堆栈指针减1 04出栈复制内容DM0000 DM0001 DM0002 DM0003 DM0004 DM00050004IR200BBBB BBBBCCCC DDDD EEEE 例:00000LD@COLL(81) DM000008IR2160 0 5@COLL(81) MC SBsDM00000 0 0 5200后入先出IR216 DM0000 DM0001 DM0002 DM0003 DM0004 堆栈指针减1 4 DM DM0001 DM0002 DM0003 DM0004 DM0005AAAA BBBB CCCC DDDD DM0005 EEEE复制内容 出栈IR200注意:后入先出原则出栈,DM0001~DM0005的内容不移动、不变。 DM0005的内容复制到IR200中,DM0000内容减1。 说明出错标志25503:有下列情况之一时为ON,此时该指令不执行。 控制数据C中的偏移(数据调用)或堆栈长度(出栈操 作)不是BCD码 ; ? C= 之间时,SBs和SBs+C不在同一数据区; ? Cbit15~Cbit12 =8或 9 时,SBs和SBs+(C的低3位)不 在同一数据区; ? 堆栈指针超过堆栈长度。 ? *DM通道不存在。 相等标志25506:SBs的内容为0000时为ON。 8. 位传送指令-MOVB(82)/@ MOVB(82)MOVB(82) S C D @MOVB(82) S C D S:源数据IR,SR,HR,AR,LR,TC,DM,*DM,#C:控制数据(BCD码)IR,SR,HR,AR,LR,TC,DM,*DM,#D:目的通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,将S指定的一位送到目的通道D的指 定位上。控制数据C的含义:1 2 0 1BCD码S中源位 (00~15) D中目的位(00~15) 例:00000 MOVB(82) #00FF #1201 LR10LD 00000 MOVB(82) #00FF #1201 LR101500S:00000000111111111500D:XXXXXXXXXXXXXXXX 9. 数字传送指令-MOVD(83)/@ MOVD(83)MOVD(83) S C D @MOVD(83) S C D S:源数据IR,SR,HR,AR,LR,TC,DM,*DM,#C:控制数据(BCD码)IR,SR,HR,AR,LR,TC,DM,*DM,#D:目的通道IR,SR,HR,AR,LR,DM,*DM 功能:执行条件为ON时,将S中指定的数字位(4个二进制位)送到目的通道D中的指定数字位。一次最多可以传送4个数字位。控 制 数 据 C 含 义指定S中要传送的第一个数字位(0~3) 指定S中要传送数字的位数(0~3) 不用 0:传送1位数字; 1: 传送2位数字; 2:传送3位数字; 3:传送4位数字。D中接收的被传送数字的第一个数字位(0~3) 例:当C分别为#0010、#0030、#0031、#0023时,执行MOVD指令的情况。C=#0010 C=#0030 C=#0031 C=#00230 1 2 30 1 2 30 ④ ① 1 ② 2 3 ③0 ② 1 ③ 2 ① 3说 明出错标志25503:有下列情况之一时为ON,此时该指令不执行。C指定的位不存在,25503为ON。*DM通道不存在,25503为ON 。 §3-4-2数据比较指令1. 单字比较指令--CMP(20)CMP(20) C1 C2C1:比较数1IR,SR,HR,AR,LR,TC,DM,*DM,#C2:比较数2 IR,SR,HR,AR,LR,TC,DM,*DM,# 功 能当执行条件为ON时,比较C1、C2的大小,将比较结果送SR 区标志位。 . . . 当 C1 & C2 时,大于标志位 25505 为ON。 当 C1=C2 时,等于标志位 25506 为ON。 当 C1 & C2 时,小于标志位 25507 为ON。 例:00000 TR0 CMP(20) HR09 200
LD 00000 OUT TR0 CMP(20) HR09 200 LD TR0 AND 25505 OUT 01000 LD TR0 AND 25506 OUT 01001 LD TR0 AND 25507 OUT 01002(HR09) &(IR200)时 01000为ON (HR09) =(IR200)时 01001为ON (HR09) &(IR200)时 01002为ON 例:利用定时器和比较指令产生如图波形。00000接启动按钮。00000 TIM 010 #5000 CMP(20)500.0s定时 100s 100s 100sTIM010# 01000 CMP(20) TIM010 #
s 01003100.0s时输出LD TIM
#5000 CMP(20) TIM010 #4000 AND 25507 OUT 01000 LD 01000 CMP(20) TIM010 #3000 AND 25507 OUT 01001LDCMP(20)01001TIM010 #2000 AND 25507200.0s时输出CMP(20)TIM010 # 01002OUTLD OUT01002TIM010 01003300.0s时输出TIM010 01003500.0s时输出 2. 双字比较指令--CMPL(60)CMPL(60) C1 C2C1:第一个比较字的起始通道 IR,SR,HR,AR,LR,TC,DM,*DM C2:第二个比较字的起始通道 IR,SR,HR,AR,LR,TC,DM,*DM 功 能当执行条件为ON时,将通道C1+1、C1中的两个字构成一个 双字,将通道C2+1、C2中的两个字构成一个双字,比较两数的 大小,将比较结果送SR区标志位。?. 当 (C1+1,C1) & (C2 +1,C2)时,大于标志位 25505 为ON。 ?. 当 (C1+1,C1) = (C2 +1,C2)时,等于标志位 25506 为ON。?. 当 (C1+1,C1) & (C2 +1,C2)时,小于标志位 25507 为ON。 注意: (1).编程顺序同CMP;(2).出错标志同CMP; (3). C1+1和C1 必须在同一数据区; C2+1和C2 必 在同一数据。 (4).CMPL(60)不能用于带符号数的比较。 须 3.块比较指令--BCMP (68)/ @BCMP (68)BCMP (68) @BCMP (68)CD:比较数据IR,SR,HR,AR,LR,TC,DM,*DM,#CDCB RCDCB RCB:数据块起始通道IR,SR,HR,LR,TC,DM,*DMR:结果通道IR,SR,HR,AR,LR,TC,DM,*DM 功 能比较块由CB,CB+1,CB+2,……,CB+31组成,分16个比较区域, 每个比较区域由两个通道定义,第一个为下限,第二个为上限,上限值应 大于等于下限值。 当执行条件为ON时,将比较数据CD与每一个区域进行比较,如果CD 处在某个区域,比较结果通道R中的对应位置1,否则该对应位置0。 区域比较和R的 对应关系:序号 1 2 3 4 … … 15 16 CB+28 CB+30 下限 CB CB+2 CB+4 CB+6 …… 上限 CB+1 CB+3 CB+5 CB+7 R中对应的位 00位 01位 02位 03位 ……CB+29 CB+31说明:当比较块超出所在数据区的范围或间接寻址DM通 道不存在,出错标志25503为ON,此时该指令不执行。……14位 15位 例:当执行条件00000为ON时,将通道200中的数据0210与DM0010开始的比 较块通道中的数据进行区域比较,比较结果放在HR05中的对应位上。下限00000 BCMP (68) 200 DM0010 DM0010 DM0012 DM0014 DM0016 DM0018 DM01 10 0510上限DM比较结果通道HR0500 HRDM0013DM0015 DM0017 DM0019020000HR0502HR0503 HR0504 HR0505 HR0506 HR0507 HR0508 HR0509 HR051010 0 0 0 0 0 0 0HR05DM0021DM0023 DM0025 DM0027 DM0029 DM0031 DM0033 DM0035 DM0037060000 00 DM0022061010 01 比较数据:IR200 0210DM0024 DM0026 DM0028 DM0030 DM0032 DM0034 DM0036 DM0038HR0511HR0512 HR0513 HR0514 HR051500 0 0 0DM0039DM004115001600DM00401501 4. 表比较指令--TCMP (85)/ @TCMP (85)CD:比较数据TCMP (85) CD TB@TCMP (85) CD TBIR,SR,HR,AR,LR,TC,DM,*DM,#TB:比较表起始通道IR,SR,HR,LR,TC,DM,*DMRRR:结果通道IR,SR,HR,AR,LR,TC,DM,*DM 功能当执行条件为ON时,将数据CD与TB,TB+1,TB+2,……,TB+15中的数据进行比较,如果CD与这些通道中某一个数据相同,则结果通道R中 相应位置1,否则置0。 说明:当比较表TB~ TB+15超出所在数据区的范围或间接寻址DM通道不 存在,出错标志25503为ON,此时该指令不执行。 例:当执行条件00000为ON时,将通道200中的数据0210与DM0010开始的16个通道中的数据进行表比较,比较结果放在HR05中的对应位上。比较表DM00 DM0011比较结果通道HR0500 HR0501 HR 100000TCMP (85) 200DM0012DM0013 DM0014021000 00 HR0503HR0504 HR0505 HR050600 0 1DM0010 HR05DM0015 DM0016 DM0017 DM0018 DM0019HR0507HR0508 HR0509 HR0510 HR0511 HR0512 HR0513 HR0514 HR051500 0 1 0 0 0 1 0比较数据:DM0020DM0021120010 1600IR2000210DM0022 DM0023 DM0024 DM0025返回 数据移位指令: 10种 数据转换指令:6种 §3-5-1数据移位指令St:起始通道1. 移位寄存器指令--SFT(10)数据输入端 IN移位脉冲输入端复位端SPRSFT(10) St EIR,SR,HR,AR,LRE:结束通道 IR,SR,HR,AR,LR 功 能当R端为ON时,从St 到 E 通道中所有位置为OFF,此时SP 和IN无效。当R端为OFF时,在移位脉冲端SP由OFF→ON的上升沿时,St 到 E 通道中的所有位依次左移一位,E通道最高位溢出丢失, St通道最低位则移进数据输入端IN的数据。 15E0015E-100…溢出………15St+10015St00……IN状态注 意(1).只有R端为OFF时,且SP端具有上升沿时,才产生移位;(2).编程时先编IN,再编SP,再编R,最后编SFT指令;(3). SFT指令不影响标志位;(4). 开始通道号St必须小于等于结束通道号E,且St和E必须在同一区域。 例1:使用SFT指令1s00000IN SP R25502SFT (10) 200 200
253152000220003200030100020004 例2:上例中,如把常开触点2相并联情况IN SP R1sSFT (10) 200 200
20001 200020100020003 例3:SFT指令的另一种用法00000@MOV(21) #2531400000由OFF变为ON时, #0001送到200通道中,使 20000为ON数据输入端常为OFFIN SP RSFT (10) 200 200 每来一个脉冲,20000的ON 状态依次向高位移动。01000 2. 可逆移位寄存器指令--SFTR(84)/@ SFTR(84)C:控制通道 SFTR(84) C St @SFTR(84) C St St:起始通道 IR,SR,HR,AR,LR,DM,*DM E:结束通道 IR,SR,HR,AR,LR,DM,*DM IR,SR,HR,AR,LR,DM,*DMEE控制通道C各位的含义:15 14 13 12 - - - - - - - - - - - -移位方向1: 左移 0: 右移 数据输入端IN 移位脉冲端SP 复位端R-- : 不使用 功 能执 行 条 件 为 ON左移: Cbit15=ON,则从St到E,CY所有数据复位,不接收数据。Cbit15=OFF,Cbit12=1,则从St到E、CY,每个扫描周期左移1位 Cbit12=0,则从St到E、CY,每个扫描周期右移1位00 15且Cbit14=ONCY15E …E-1 …00……15St+1 …0015St …00Cbit13右移:15E …0015E-1 …00……15St+1 …0015St …00CYCbit13当执行条件为OFF时,停止工作。此时复位信号不起作用。既此时复位信号为ON时,从St到E,CY保持不变。 注 意(1).SFTR(84)指令,只要执行条件为ON,Cbit15=OFF(R=OFF),Cbit14=ON(SP=OFF),则每个扫描周期移位一位。所以,要想控制移位, 要么用@SFTR(84)形式,要么用其他信号的微分形式控制Cbit14。 (2).开始通道号St必须小于等于结束通道号E,且St和E必须在同一区域。 (3). ER标志 St和E不在同一区域,25503为ON St & E *DM通道不存在, (4). 进位标志CY:25504 左移:E15→CY 右移:St00→CY CY=1,则25504为ON 25503为ON 25503为ON 例:
20012 移位方向 20013 数据输入例:
20012 移位方向20013 数据输入00002DIFU(13)
20014 移位脉冲
SFTR(84) 200 C 20015 复位信号0000220014 移位脉冲20015 复位信号@SFTR(84)200 LR10 LR11C St EStELR10LR11 3. 字移位指令-WSFT (16)/@ WSFT (16)St:起始通道WSFT(16) St E@WSFT(16) St EIR,SR,HR,AR,LR,DM,*DM E:结束通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,WSFT每执行一次,从St到E中的 数据以字为单位左移一次,0000移进St,E中的数据丢失。 例:00000 WSFT(16) LR00 LR02 溢出LR02F 0 C 2 3LR014 5 2 1LR000 2 9移位前 0000LR023 4 5 2 1LR010 2 9 0LR000 0 0移位后St和E不在同一区域,ER标志St & E *DM通道不存在,25503为ON 4. 算术左移指令-ASL (25)/@ ASL (25)ASL(25) Ch @ASL(25) Ch Ch:移位通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,ASL每执行一次,将Ch中数据左移 一位,最高位移到CY位,0移进最低位。CY 15 000 说明(1). 出错标志位25503:*DM通道不存在时为ON,此时该指令不执行。 (2). 进位标志位25504:移位溢出的位进入该标志位。 (3). 相等标志位25506:当移位通道中的内容为0000时为ON。 5. 算术右移指令-ASR (26)/@ ASR (26)ASR(26) Ch @ASR(26) Ch Ch:移位通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,ASR每执行一次,将Ch中数据右移 一位,最低位移到CY位,0移进最高位。15 00 CY0 说 明(1). 出错标志位25503:*DM通道不存在时为ON,此时该指令不执行。 (2). 进位标志位25504:移位溢出的位进入该标志位。 (3). 相等标志位25506:当移位通道中的内容为0000时为ON。 6. 循环左移指令-ROL (27)/@ ROL (27)ROL(27) Ch @ROL(27) Ch Ch:移位通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,ROL每执行一次,将Ch中数据连同CY位数据,循环左移一位。CY 15 00 说 明(1). 出错标志位25503:*DM通道不存在时为ON,此时该指令不执行。 (2). 进位标志位25504:移位通道中的第15位数据进入该标志位。(3). 相等标志位25506:当移位通道中的内容为0000时为ON。 7. 循环右移指令-ROR (28)/@ ROR (28)ROR(28) Ch @ROR(28) Ch Ch:移位通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,ROR每执行一次,将Ch中数据连同CY位数据,循环右移一位。15 00 CY 说 明(1). 出错标志位25503:*DM通道不存在时为ON,此时该指令不执行。(2). 进位标志位25504:移位通道中的第00位数据进入该标志位。(3). 相等标志位25506:当移位通道中的内容为0000时为ON。 8. 1位数字左移指令-SLD (74)/@ SLD (74)St:起始通道SLD(74) St E@SLD(74) St EIR,SR,HR,AR,LR,DM,*DM E:结束通道 IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,SLD每执行一次,将St到E中的 数据以数字为单位左移一次,E中的最高数字位溢出丢失, 0数字移进St最低位。EF 0 C 2St ……1 0 2 9溢出0 St和E不在同一区域,ER标志St & E *DM通道不存在,25503为ON 9. 1位数字右移指令-SRD (75)/@ SRD (75)St:起始通道SRD(75) St E@SRD(75) St EIR,SR,HR,AR,LR,DM,*DM E:结束通道 IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,SRD每执行一次,将St到E中的 数据以数字为单 位右移一次,E中的最高数字位填进0数字, St最低数字位溢出丢失。 EF 0 C 2St ……1 0 2 90 St和E不在同一区域,溢出ER标志St & E *DM通道不存在,25503为ON 10. 异步移位寄存器指令-ASFT(17)/@ ASFT(17)C:控制数据 ASFT(17) C St E @ASFT(17) C St E IR,SR,HR,AR,LR,DM,*DM,# St:起始通道 IR,SR,HR,AR,LR,DM,*DM E:结束通道 IR,SR,HR,AR,LR,DM,*DM控制数据C各位的含义15 14 13 - - - - - - - - - - - - -移位方向移位允许位1: 下移(向低地址通道移动) 0: 上移(向高地址通道移动) 1: 允许移动 0: 不允许移动 1: 复位 0: 正常操作-- : 不使用复位端R 功 能若寄存器中不包含0000字,不发生移动,不出现数据交换。 上移时(Cbit15=OFF,Cbit14=ON,Cbit13=OFF),所有内容为 0000的通道与相邻的高地址通道之间交换数据。若相邻高地址通道内容也为0000,则这两个通道不交换数据。 下移时(Cbit15=OFF,Cbit14=ON,Cbit13=ON),所有内容为0000的通道与相邻的低地址通道之间交换数据。若相邻低地址通道内容也 为0000,则这两个通道不交换数据。若Cbit15=ON,则St到E之间的通道复位(全部置为0000)。St和E不在同一区域,ER标志St & E *DM通道不存在,25503为ON 例:00000执行前ASFT(17)DM0100 DM0101 DM0102 DM0103 DM0104 DM0105 DM00 56 78 9A执行一次后DM0100 DM0101 DM0102 DM0103 DM0104 DM0105 DM0106 DM0107 DM0108 DM0109 DM00 56 78 00执行七次后DM0100 DM0101 DM0102 DM0103 DM0104 DM0105 DM0106 DM0107 DM0108 DM0109 DM45 78 00 00#6000DM0100 DM0110控制数据C=#6000, 二进制表示为: 0000DM0107 DM0108 DM0109 DM0110故复位位为OFF,移位 允许位为ON,移位方向为ON(下移) §3-5-2数据转换指令S:源通道(BCD码)1. BCD码→二进制转换指令- BIN(23)/@ BIN(23)BIN(23) S R @BIN(23) S RIR,SR,HR,AR,LR,TC,DM,*DMR:结果通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,BIN将S中的BCD码转换为二进制数, 存入R中。转换过程中,S的内容不变。 说 明出错标志25503:有下列情况之一时为ON,此时该指令不执行。S的内容不是BCD码,25503为ON。*DM通道不存在,25503为ON 。相等标志25506:当转换结果为0000时为ON。 2. 二进制→ BCD码转换指令- BCD(24)/@ BCD(24)S:源通道(二进制)BCD(24) S R@BCD(24) S RIR,SR,HR,AR,LR,DM,*DMR:结果通道IR,SR,HR,AR,LR,DM,*DM功能:执行条件为ON时,BCD将S中的二进制数转换为BCD码,存入R中。转换过程中,S的内容不变。 说 明出错标志25503:有下列情况之一时为ON,此时该指令不执行。转换后的BCD码大于9999, *DM通道不存在,25503为ON 。相等标志25506:当转换结果为0000时为ON。 3.16→ 4编码器指令-DMPX(77)/@ DMPX(77)DMPX(77) S R C @DMPX(77) S R C S:源开始通道IR,SR,HR,AR,LR,TC,DM,*DM,R:结果通道IR,SR,HR,AR,LR,DM,*DMC:控制数据(BCD码)IR,SR,HR,AR,LR,TC,DM,*DM,#控制数据C的含义:指定R中接受编码结果的第一个数字位(0~3)指定被编码的源通道数(0~3) 0:1个通道; 1: 2个通道; 固定为0 2:3个通道; 3:4个通道。 功 能当执行条件为ON时,DMPX对源通道进行16-4编码,编码结果存入R中指定的数字位上。一次最多可对4个源通道进行 编码。 对源通道编码时,把该通道状态为ON的最高位的位号,编码成相应的一个十六进制数,然后传送到结果通道的指定数字位上。说 明S+3超出数据区范围,25503为ON ,该指令不执行。*DM通道不存在, 例:00000DMPX(77) 216 200 #0032LD 00000 DMPX(77) 216 200 #0032C=#0032 4个通道均转换,R中结果的第一个数字位为2 IR20015S0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0300 0 0 1 0A58RIR216 IR217 IR218 IR2190 0 0 0②①④ ③ 4.4→ 16译码器指令-MLPX(76)/@ MLPX(76)MLPX(76) S C R @MLPX(76) S C R S:源通道IR,SR,HR,AR,LR,TC,DM,*DM,C:控制数据(BCD码)IR,SR,HR,AR,LR,TC,DM,*DM,#R:结果开始通道IR,SR,HR,AR,LR,DM,*DM控制数据C的含义:指定S中第一个要译码的数字位(0~3) 指定S中要译码的数字位数(0~3) 0:1位数字; 1: 2位数字; 固定为0 2:3位数字; 3:4位数字。 功 能当执行条件为ON时,MLPX对S中指定的数字进行4-16译 码,译码结果存入R开始的通道中。最多可对4位数字译码。 对S中某位数字译码时,把这位数字(1位16进制数)转换 为00~15的十进制数,然后将指定结果通道中与该位十进制数对应的位置为ON,其余各位置为OFF。 说 明出错标志25503:有下列情况之一时为ON,此时该指令不执行。R+3超出数据区范围,*DM通道不存在,25503为ON 。 例:00000MLPX(76) 200 #LD 00000 MLPX(76) 200 #15IR2002 3 A 1SC=#0031IR21600第一个要译码的数 字位为1(A):0000010000000000第二个要译码的数 字位为2(3):第三个要译码的数 字位为3(2): 第四个要译码的数 字位为0(1):15IR2170 0 0 0 0 0 0 0 0 0 0 1 0 0000015IR2180 0 0 0 0 0 0 0 0 0 0 0 1 0000015IR2190 0 0 0 0 0 0 0 0 0 0 0 0 10000 5.七段译码指令-SDEC(78)/@ SDEC(78)SDEC(78) S C R @SDEC(78) S C R S:源通道(二进制)IR,SR,HR,AR,LR,TC,DM,*DMC:控制数据IR,SR,HR,AR,LR,TC,DM,*DM,#R:结果开始通道IR,SR,HR,AR,LR,DM,*DM控制数据C的含义:指定S中第一个被译码的数字位(0~3) 指定S中被译码的数字个数(0~3) 0:1个数字; 1: 2个数字; 2:3个数字; 3:4个数字。 指定从R的高8位还是低8位开始接收第一个转换结果 0:低8位; 1: 高8位;固定为0 功 能当执行条件为ON时,SDEC对源通道中的数字进行七段译码,译码结 果存入从R开始的结果通道中。一次最多可对S中的4个数字进行转换。 一个通道可以存放两个数字的转换结果。 bit00~bit06 对应于a、b、c、d、e、f、g, bit07 不用 bit08~bit14 对应于a、b、c、d、e、f、g, bit15 不用 若C指定从R的低8位开始接收第一个转换结果,则R需要两个通道;若C指定从R的高8位开始接收第一个转换结果,则R需要三个通道。说 明控制字C错误 结果通道超出数据区范围 *DM通道不存在25503为ON , 该指令不执行。 例:00000SDEC(78) 216 200 DM0000LD 00000 SDEC(78) 216 200 DM0000IR2165 A 3 0SC=IR200的内容?. 当IR200的内容为0030时(第一个转换的数字位为0;转换4位;结果 通道从低8位开始接收)。 f eIR2165 A 3 0a g db cS ②④③①X 1 1 0 1 1 0 1 X 1 1 1 0 1 1 1DM0001X 1 0 0 1 1 1 1 X 0 1 1 1 1 1 1DM0000 ?. 当IR200的内容为0131时(第一个转换的数字位为1;转换4位;结果通道从高8位开始接收)。 a g d ② ①X1001111 DM0000f eIR2165 A 3 0b cS④X0111111 DM0002③X10111DM0001 6.ASCⅡ 码转换指令-ASC(86)/@ ASC(86)ASC(86) S C R @ASC(86) S C RS:源通道IR,SR,HR,AR,LR,TC,DM,*DMC:控制数据IR,SR,HR,AR,LR,TC,DM,*DM,#R:结果开始通道控制数据C的含义:IR,SR,HR,AR,LR,DM,*DM指定S中第一个被转换的数字位(0~3) 指定S中被转换的数字个数(0~3) 0:1个数字; 1: 2个数字; 2:3个数字; 3:4个数字。 指定从R的高8位还是低8位开始接收第一个转换结果 0:低8位; 1: 高8位;校验:0:无校验; 1:偶校验; 2:奇校验 功 能当执行条件为ON时,ASC对S中指定的数字转换成ASCⅡ 码,并存入从R开始的结果通道中。一次最多可对S中的4个数字进行转换。若C指定从R的低8位开始接收第一个转换结果,则R需要两个通道; 若C指定从R的高8位开始接收第一个转换结果,则R需要三个通道。 一个通道可以存放两个数字的转换结果。15 08 07 000000000000000010转换后的ASCⅡ 码 校验位 校验位转换后的ASCⅡ 码奇校验:ASCⅡ 码中1的个数为奇数。偶校验: ASCⅡ 码中1的个数为偶数。 例:00000ASC(86) 216 200 DM0000LD 00000 ASC(86) 216 200 DM0000IR2162 3 A 1SC=IR200的内容? .当IR200的内容为1030时(第一个转换的数字位为0;转换4位;结果 通道从低8位开始接收;偶校验)。 SIR2162 3 A 1④③②①1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1DM00010 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1DM0000 ? . 当IR200的内容为2133时(第一个转换的数字位为3;转换4位;结果 通道从高8位开始接收;奇校验)。IR2162 3 A 1S④ DM0002③②①10001 DM0001DM0000说 明控制字C错误结果通道超出数据区范围 *DM通道不存在 返回25503为ON , 该指令不执行。 十进制数运算指令: 12种二进制数运算指令: 4种逻辑运算指令: 5种 §3-6-1 十进制运算指令1. 进位位置1指令-STC(40)/@ STC(40)进位位置0指令-CLC(41)/@ CLC(41)进位位置1:STC(40) @STC(40)进位位置0:CLC(41) @CLC(41) 功 能当STC的执行条件为ON时,进位标志位25504被置为1。 当CLC的执行条件为ON时,进位标志位25504被置为0。STC、CLC在执行条件为ON时,每次扫描都要执行一次。@STC、@CLC仅在执行条件由OFF变ON时执行一次。做加法、减法时,进位位要参与运算,一般要在运算前清进位位。 2. BCD码加法指令-ADD(30)/@ ADD(30)ADD(30) Au Ad R @ADD(30) Au Ad R Au:被加数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#Ad:加数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#R:结果通道IR,SR,HR,AR,LR,DM,*DM 功当执行条件为ON时,ADD将Au、Ad的内容和CY相加,能 结果存入R中。若结果大于9999,把CY置为ON。说明Au或Ad中有非BCD码*DM通道不存在25503为ON , 该指令不执行。进位标志25504:当和超出4为BCD码时,25504为ON。 相等标志25506:当和为0000时,25506为ON。 例:00002TR0CLC(41)ADD(30)LR10 #6103 DM010025504LD OUT CLC(41) ADD(30)00002 TR0MOV(21) #0001 DM010125504LD AND MOV(21)LR10 #6103 DM0100 TR0 2 DM0101 TR0 2 DM0101MOV(21) #0000 DM0101LD AND NOT MOV(21)功能:当00002为ON时,先清进位,然后执行(LR10)+6103+CY→DM0100;再把相加产生的进位存入DM0101中。 3. BCD码减法指令-SUB(31)/@ SUB(31)SUB(31) Mi Su R @SUB(31) Mi Su R Mi:被减数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#Su:减数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#功 能R:结果通道IR,SR,HR,AR,LR,DM,*DM当执行条件为ON时,SUB将Mi的内容减去Su的内容和CY,结果存入R中。若结果为负,把CY置为ON,而R中的内容为实际结果的十进制补码。 要将R中的内容转换为实际结果,应先清CY,再用0减去R中的内容。 说Mi或Su中有非BCD码 *DM通道不存在明25503为ON , 该指令不执行。进位标志25504:当Mi & Su时,25504为ON。相等标志25506:当差为0000时,25506为ON。 例:例:00002TR0CLC(41)功能SUB(31)HR00DM0100 HR0125504当00002为ON时,1. 先清进位2. (HR10)-DM0100-CY→HR01MOV(21) #0000 HR02255043. 当进位位为 0 时表示结果为正, 结果存入HR02中 4. 当进位位为 1 时表示结果为负。当 结果为负数时,把补码形式转换为实 际结果,存入HR01,1存入HR02中, 表示负数CLC(41)SUB(31)#0000 HR01 HR01 MOV(21) #0001 HR02 4. 双字BCD码加法指令-ADDL(54)/@ ADDL(54)ADDL(54) Au Ad R @ADDL(54) Au Ad R Au:被加数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMAd:加数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMR:结果开始通道IR,SR,HR,AR,LR,DM,*DM 功 能Au+1 Au当执行条件为ON时,完成如图所示运算。 说 明Au或Ad中有非BCD码 *DM通道不存在Ad+1 Ad25503为ON , 该指令不执行。+CY R+1CY R进位标志25504:运算结果大于时,25504为ON。相等标志25506:当结果为0000时,25506为ON。 5. 双字BCD码减法指令-SUBL(55)/@ SUBL(55)SUBL(55) Mi Su R @SUBL(55) Mi Su R Mi:被减数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMSu:减数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMR:结果开始通道IR,SR,HR,AR,LR,DM,*DM 功 能Mi+1 Mi当执行条件为ON时,完成如图所示运算。结果为负,CY置1 说Mi或Su中有非BCD码 *DM通道不存在Su+1 Su-25503为ON , 该指令不执行。CY R+1CY R明进位标志25504:被减数小于减数时,25504为ON。 相等标志25506:当结果为0000时,25506为ON。 6. BCD码乘法指令-MUL(32)/@ MUL(32)MUL(32) Md Mr R @MUL(32) Md Mr R Md:被乘数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#Mr:乘数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#R:结果开始通道IR,SR,HR,AR,LR,DM,*DM 功 能Md当执行条件为ON时,完成如图所示运算。 说 明Md或Mr中有非BCD码 *DM通道不存在wR+1Mi R25503为ON , 该指令不执行。相等标志25506:当结果为0000时,25506为ON。 7. BCD码除法指令-DIV(33)/@ DIV(33)DIV(33) Dd Dr R @DIV(33) Dd Dr R Dd:被除数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#Dr:除数(BCD)IR,SR,HR,AR,LR,TC,DM,*DM,#R:结果开始通道IR,SR,HR,AR,LR,DM,*DM 功 能R商 余数 ….R+1当执行条件为ON时,完成如 图所示运算。 说 明Dd或Dr中有非BCD码DrDd….*DM通道不存在25503为ON , 该指令不执行。相等标志25506:当结果为0000时,25506为ON。 8. 双字BCD乘除法指令-MULL(56)/@ MULL(56)MULL(56) Md Mr R @MULL(56) Md Mr R Md:被乘数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMMr:乘数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMR:结果开始通道IR,SR,HR,AR,LR,DM,*DM 功 能Md+1 Md当执行条件为ON时,完成如 图所示运算。说 明Md或Mr中有非BCD码wR+3 R+2Mr+1 R+1Mr R*DM通道不存在25503为ON , 该指令不执行。相等标志25506:当结果为0000时,25506为ON。 9. 双字BCD码除法指令-DIVL(57)/@ DIVL(57)DIVL(57) Dd Dr R @DIVL(57) Dd Dr R Dd:被除数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMDr:除数开始通道(BCD)IR,SR,HR,AR,LR,TC,DM,*DMR:结果开始通道功 能当执行条件为ON时, 完成如图所示运算。 说 明Dd或Dr中有非BCD码Dr+1IR,SR,HR,AR,LR,DM,*DMR+1Dr Dd+1RDd商余数R+3 R+2….*DM通道不存在25503为ON , 该指令不执行。….相等标志25506:当结果为0000时,25506为ON。 10. 递增指令-INC(38)/@ INC(38)INC(38) Ch @INC(38) Ch Ch:递增通道IR,SR,HR,AR,LR,DM,*DM功 能当执行条件为ON时,每执行一次INC指令,将ch通道中的 数据按十进制加1,不影响进位标志。 说 明通道中内容不是BCD码*DM通道不存在25503为ON , 该指令不执行。进位标志25504:不影响该标志。 相等标志25506:当结果为0000时,25506为ON。 11.

我要回帖

更多关于 一个字是几位 的文章

 

随机推荐