《钱钧PLC_03编程语言.pdf》由会员分享,可在线阅读,更多相关《钱钧PLC_03编程语言.pdf(105页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PLC原理与应用机械与汽车工程学院主 讲:钱钧,丁苏赤电 邮:地 址:机械楼604室2012年11月12、17、19日Principles and Applications of PLC1第三章 PLC编程语言与基本逻辑指令?3.1 PLC编程语言?3.2 PLC编程元件?3.3 PLC基本逻辑指令?3.4 PLC程序框架组成?3.5 梯形图编程注意事项23.1 PLC编程语言?PLC编程语言的特点?与一般的计算机语言相比,PLC的编程语言,具有明显的特点。它既不同于高级语言,也不同于汇编语言。PLC的主要用户是工程技术人员,应用场合是工业过程。因此,PLC的编程语言简单,易于编写和调试,但应
2、用范围比较窄。?目前,各个PLC的生产厂家使用的语言互不兼容。33.1 PLC编程语言?IEC制定的PLC编程语言标准(IEC1131-3)?顺序功能图(Sequential Function Chart,SFC)?梯形图(Ladder Diagram,LD)?功能块图(Function Block Diagram,FBD)?指令表(Instruction List,IL)?结构化文本(Structured Text,ST)图形语言文字语言43.1 PLC编程语言?顺序功能图(SFC)?是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序。?提供了一种组织程序的图形方法,用来描述系统的功
3、能。可以对具有并发、选择等复杂结构的系统进行编程。?是分析,设计数字量控制的基本方法。53.1 PLC编程语言?顺序功能图(SFC)?主要元件:步、转换和动作。?步:即工作步(或流程步),是控制系统中的一个稳定状态。?转换:从一个步过渡到另外一个步时的切换条件,两个步之间的切换可用一个有向线段表示,代表向下转移的有向线段的箭头可以忽略。?动作:被控系统在某一步需要完成的动作,由PLC输出触点控制。?注意:有向连续、转换条件。63.1 PLC编程语言?梯形图(LD)?是一种图形语言,它是以继电器控制系统的电气原理图为基础演变而来的。它沿用了传统的继电器控制中的触点、线圈、串并联等术语和图形符号还
4、加进了许多功能强、使用灵活的指令,使得编程更加容易。?比较形象、直观,对于熟悉继电器控制系统的人来说,容易接受。世界上各个PLC的生产厂家都把梯形图语言作为第一用户编程语言。73.1 PLC编程语言?梯形图?PLC梯形图83.1 PLC编程语言?梯形图?继电器控制电路图 v.s.PLC梯形图PLC梯形图常用继电器梯形图常用继电器输出线圈常闭(动断)触点常开(动合)触点输出线圈常闭(动断)触点常开(动合)触点()93.1 PLC编程语言?梯形图?继电器控制电路图?PLC梯形图启保停电路PLC外部接线图103.1 PLC编程语言?梯形图?继电器控制电路图?PLC梯形图PLC外部接线图1 启动后,K
5、M1接通;2 延时T37后,KM2接通,KM1断开;3 延时T38后,KM3接通,KM2断开。KA,KT1,KT2M0.0,T37,T38113.1 PLC编程语言?梯形图?组成:触点、线圈、用方框表示的功能块。?特点:?沿用继电器这一名称,但不是真实继电器,而是软件中编程元件,称为软器件。?假想的“能流”(Power Flow),从左向右流动。?逻辑解算,从左至右,从上至下。?线圈放在最右边,触点可无限次使用。123.1 PLC编程语言?梯形图母线ABCDEFM()()母线Q“能流”133.1 PLC编程语言?梯形图的规则?左边为起始母线,右边为结束母线(可省略)。?从左到右、从上到下的顺序
6、书写。?接点(对应触头)有两种:常开和常闭?输出线圈用()表示,如-(Y0)。一个输出变量只能输出一次。输出前面必须有接点(即每个逻辑行必须是触点与母线相连)。?接点可串可并,但输出只能并不能串。?程序结束时有结束符(条件结束指令)-END。143.1 PLC编程语言?梯形图的规则解释?触点代表逻辑“输入”条件,如开关、按钮、内部条件等。?线圈通常代表逻辑“输出”结果,如灯、电机接触器、中间继电器等。?每个网络由多个梯级组成,每个梯级由一个或多个支路组成,并由一个输出元件构成,但右边的元件必须是输出元件。?对S7-200系列PLC来说,还有一种输出“盒”(方块图),它代表附加的指令,如定时器、
7、计数器和功能指令等。153.1 PLC编程语言?梯形图的能流?仅是概念上的“能流”,实际不存在。?梯形图中并没有真实的物理电流流动,而仅仅是概念电流(虚电流),或称为假想电流。?把左边的母线假想为电源“火线”,而把右边的母线(虚线所示)假想为电源“零线”。如果有“能流”从左至右流向线圈,则线圈被激励;如果没有“能流”,则线圈未被激励。?“能流”可以通过被激励(ON)的常开接点和未被激励(OFF)的常闭接点自左向右流。?任何时候“能流”都不会通过接点自右向左流。163.1 PLC编程语言?功能块图(FBD)?是一种图形语言,类似于数字电子电路的编程语言。沿用了半导体逻辑电路的逻辑框图表达方式,用
8、类似于 与门、或门的方框表示逻辑关系;使用像普通逻辑门图形的逻辑盒指令,程序逻辑由这些盒指令之间的连接决定。?方框左侧为输入变量,右侧为输出变量。信号自左向右流动,用“导线”将方框连接在一起。ANDI2.1V5.0T33AC0INPTTON173.1 PLC编程语言?指令表(IL)/语句表(STL)?是一种与微机的汇编语言中的指令相似的助记符表达式,是可PLC最基础的编程语言。?用一个或几个容易记忆的字符来代表PLC的某种操作功能。每个操作功能由一条或几条语句来执行。?指令由助记符和操作数两部分组成?助记符标志计算机的CPU执行此条指令完成的功能,?操作数指出CPU的操作对象,由标识符和参数组
9、成。标识符表示操作数的类别;参数表明操作数的地址或一个顶先设定值。?适合于熟悉PLC和有经验的程序员使用。183.1 PLC编程语言?指令表(a)梯形图(b)指令表I0.0()()I0.1Q0.0Q0.0Q0.1()M0.1I0.5I0.3I0.4()Q0.2M0.1LDOALDNALDNANI0.0Q0.0I0.1Q0.0I0.5Q0.1I0.3M0.1I0.4M0.1Q0.2193.1 PLC编程语言?结构化文本(ST)?是一种专用的高级编程语言。用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。?优点:?容易实现复杂的数学运算?程序简洁、紧凑?例:启保停控制Q0.0
10、:=(I0.0 OR Q0.0)AND NOT(I0.1);LD I0.0O Q0.0AN I0.1=Q0.0 指令表程序203.2 PLC编程元件?继电器?定时器T?类似于继电器电路中的时间继电器,精度更高。?计数器C?记录计数输入端脉冲的上升沿跳变的次数。?模拟量输入AI/输出AQ?进行模、数信号之间的转换。?累加器AC?暂存计算中间值,或向子程序传递参数、返回值。?高速计数器HC?当脉冲信号频率快于CPU扫描速率时,累积高速脉冲信号。213.2 PLC编程元件?继电器?输入继电器、输出继电器?西门子:I,Q?三菱:X,Y?辅助继电器M、特殊继电器SM?不是真实的物理器件?与存储器中元件映
11、像寄存器区的存储单元一一对应。?当元件对应的存储单元为1时,继电器线圈接通。223.2 PLC编程元件?继电器?输入继电器输入映像寄存器?输出继电器输入映像寄存器?辅助继电器M位存储区?特殊继电器SM特殊存储区?定时器T定时器存储区?计数器C计数器存储区?计数器、加/减计数器、高速计数器233.2 PLC编程元件?数据存储区?输入映象寄存器(I)?数字量输入端子对应输入映像寄存器的相应位。?输入映像寄存器的状态只能由外部输入信号驱动,而不能在内部由程序指令来改变。?输出映象寄存器(Q)?数字量输出端子对应输出映像寄存器的相应位。?例?位地址:I字节地址.位地址,如I0.1;?字节、字、双字地址
12、:I数据长度 起始字节地址,如IB4、IW6、ID10。243.2 PLC编程元件?数据存储区?输入映象寄存器(I)&输出映象寄存器(Q)?在程序的执行过程中,对于输入、输出的存取通常是通过映像寄存器,而不是实际的输入、输出端子。?在每个扫描周期,CPU以批处理方式分别对输入、输出映像寄存器的数值进行批量更新。253.2 PLC编程元件?数据存储区?位存储区(M)?是模拟继电器控制系统中的中间继电器,它存放中间操作状态,或存储其它相关数据。?例如:M26.7,MB11,MW23,MD26。?特殊存储区(SM)?用于存储系统的状态变量和有关控制信息。?特殊标志位分为只读区和可写区。在只读区特殊标
13、志位,用户只能利用其触点。263.2 PLC编程元件?特殊继电器(特殊标志继电器)SM0SM29?SM0.0 一直为1状态?是不可控触点,无条件触发。?有时输出指令不需要条件、直接输出为1,为了满足编程约定,在前面串连SM0.0。?SM0.1 仅在执行用户程序的第一个扫描周期时为1状态,称为初始脉冲。(三菱为M8002)?用于调用初始化子程序。?SM0.3 PLC进入RUN状态时,接通一个扫描周期。?SM0.4、SM0.5分别提供1min和1s的时钟脉冲。?273.2 PLC编程元件?数据存储区?变量存储区(V)?存放全局变量、存放程序执行过程中控制逻辑操作的中间结果或其他相关数据。变量存储器
14、全局有效。全局有效是指同一个存储器可以在任一程序分区(主程序、子程序、中断程序)被访问。?例如:V10.2,VB20,VW100,VD320。?局部存储区(L)?存放局部变量,是局部有效的。即:指某一局部存储器只能在某一程序分区(主程序、子程序或中断程序)中使用。?例如:L0.0,LB33,LW44,LD55。283.2 PLC编程元件?数据存储区?顺序控制继电器存储器(S)?顺序控制继电器(S)用于顺序控制(或步进控制)。?顺序控制继电器指令(SCR)基于顺序功能图(SFC)的编程方式。三个要素:输出对象、转移条件、转移目标。?例如:S3.1,SB4,SW10,SD21。?例:根据舞台灯光效
15、果的要求,控制红、绿、黄三色灯。要求:红灯先亮,2s后绿灯亮,再过3s后黄灯亮。待红、绿、黄灯全亮3min后,全部熄灭。293.2 PLC编程元件?数据存储区?定时器存储区(T)?模拟继电器控制系统中的时间继电器。时基有三种:1ms、10ms、100ms。?格式为:T定时器号。例如:T24。?有效地址范围为:T(0255)。?计数器存储区(C)?用于累计其计数输入端脉冲电平由低到高的次数?三种类型:加计数、减计数、加/减计数。?格式为:C计数器号。例如:C3。?有效地址范围为:C(0255)。303.2 PLC编程元件?数据存储区?模拟量输入映像寄存器(AI)?模拟量输入模块将外部输入的模拟信
16、号的模拟量转换成1个字长的数字量,存放在模拟量输入映像寄存器中,供CPU运算处理。?例如:AIW0,AIW2,AIW4等。?模拟量输出映像寄存器(AQ)?CPU运算结果存放在模拟量输出映像寄存器中,供D/A转换器将1个字长的数字量转换成模拟量。?例如:AQW0,AQW2,AQW4等。313.2 PLC编程元件?数据存储区?累加器(AC)?用来暂存计算中间值,也可向子程序传递参数或返回参数。例如:AC0、AC1、AC2、AC3。?是可读写单元,可以按字节、字、双字存取累加器中的数值。由指令标识符决定存取数据的长度。?例如:MOVB指令存取累加器的字节,DECW指令存取累加器的字,INCD指令存取
17、累加器的双字。按字节、字存取时,累加器只存取存储器中数据的低8位、低16位;以双字存取时,则存取存储器的32位。?高速计数器(HC)?用来累计高速脉冲信号。当高速脉冲信号频率比CPU扫描速率更快时,必须使用高速计数器。323.2 PLC编程元件?S7-200 CPU存储系统个人计算机存储器卡用户程序CPU 组态V 存储器M 存储器用户程序CPU 组态V 存储器M 存储器定时器和计数器当前值CPURAMEPROM333.2 PLC编程元件?S7-200 CPU存储系统?内部存储区分为易失性的RAM存储区和永久保持的EEPROM两种,其中RAM包含CPU工作存储区和数据区域中的V数据存储区、M数据
18、存储区、T(定时器)区和C(计数器)区,EEPROM包含程序存储区、V数据存储区的全部和M数据存储区的前14 个字节、C区全部和TONR对应区域。?主机CPU模块内部配备的EEPROM,上装程序时,可自动装入并永久保存用户程序、数据和CPU的组态数据。?用户可以用程序将存储在RAM中的数据备份到EEPROM存储器。?可选的存储器卡可使用户像使用计算机磁盘一样来方便地备份和装载程序和数据。343.2 PLC编程元件?S7-200 CPU存储系统353.2 PLC编程元件?S7-200 CPU存储器的范围363.3 PLC基本逻辑指令?位逻辑指令?定时器指令?计数器指令?直接寻址和间接寻址373.
19、3 PLC基本逻辑指令?位逻辑指令1.触点指令、输出指令2.置位指令、复位指令3.立即I/O指令4.取反触点指令5.空操作指令6.正/负跳变触点指令383.3 PLC基本逻辑指令?位逻辑指令?触点指令、输出指令?LD,A,O,LDN,AN,ON?=I0.0I0.1Q0.1()Q0.0()LD I0.0=Q0.0LDN I0.1=Q0.1393.3 PLC基本逻辑指令?位逻辑指令逻辑关系梯形图助记符I0.0 I0.1LDI0.0AI0.1=Q0.0与与AND当当 I0.0与与 I0.1都都“ON”时,则输出时,则输出 Q0.0“ON”(1)。Q0.0()()LDI0.0OI0.1=Q0.0或或O
20、R当当 I0.0或或 I0.0“ON”时时,则输出则输出 Q0.0“ON”(1)I0.0I0.1Q0.0()()LDNI0.1=Q0.0非非NOT当当 I0.1“OFF”时则输出时则输出 Q0.0“ON”(1)Q0.0I0.1()()403.3 PLC基本逻辑指令?位逻辑指令逻辑关系梯形图助记符LDI0.0OI0.1LDI0.2OI0.3ALD=Q0.0当当“I0.0或或 I0.1”与与“I0.2或或I0.3”都都“ON”时,则输出时,则输出Q0.0“ON”。区块与区块与ALD(And Stack)区块或区块或OLD(Or Stack)当当“I0.0与与I0.1”或或“I0.2与与I0.3非非
21、”“ON”时,则输出时,则输出Q0.0“ON”。I0.0I0.1I0.2I0.3Q0.0I0.0I0.2I0.1I0.3Q0.0LDI0.0AI0.1LDI0.2AI0.3OLD=Q0.0413.3 PLC基本逻辑指令?位逻辑指令实例启动停车控制I/OI/O分配:I0.0:I0.0:停车I0.1:I0.1:启动Q0.1:KMQ0.1:KM继电器控制电路图指令表LD I0.1O Q0.0A I0.0=Q0.0LD I0.1O Q0.0A I0.0=Q0.0423.3 PLC基本逻辑指令?位逻辑指令实例正反转互锁控制电路433.3 PLC基本逻辑指令?位逻辑指令实例正反转互锁控制电路正转启动正转启
22、动SB2-I0.0反转启动反转启动SB3-I0.1停止停止SB1-I0.2KM2SB2KM1SB3SB1KM2KM2KM1KM1电源电源FRFR正转接触器正转接触器KM1-Q0.0反转接触器反转接触器KM2-Q0.1正转互锁反转互锁Q0.0L+I0.0I0.1I0.2Q0.11L443.3 PLC基本逻辑指令?位逻辑指令实例正反转互锁控制电路?PLC接线图和梯形图程序KM2SB2KM1SB3SB1KM2KM2KM1KM1电源电源FRFRQ0.0L+I0.0I0.1I0.2Q0.11L正转反转正转反转I0.1Q0.1I0.0Q0.0I0.2Q0.1()()I0.0Q0.0I0.1Q0.1I0.2
23、Q0.0()()453.3 PLC基本逻辑指令?位逻辑指令?置位指令S、复位指令R?具有记忆和保持功能463.3 PLC基本逻辑指令?位逻辑指令?立即I/O指令?立即输入指令?立即读取物理输入点的值,但不刷新相应映像寄存器的值。?立即输出指令?用立即指令访问输出点时,把栈顶值立即复制到指令所指定的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。?立即置位SI、立即复位RI指令?用立即置位、复位指令访问输出点时,从指令所指出的位开始的N个(最多为128个)物理输出点被立即置位、复位。同时,相应的输出映像寄存器的内容也被刷新。在标准触点指令后面加“I”。473.3 PLC基本逻辑指令?位逻辑
24、指令?立即I/O指令?不受PLC循环扫描工作方式约束,允许对输入、输出物理点进行快速直接存取,加快了输入输出响应速度。483.3 PLC基本逻辑指令?位逻辑指令?取反触点指令?用于改变能流的状态。触点左侧为1时,右侧为0,能流就停止;触点左侧为0时,右侧为1,能流就通过。?空操作指令?空操作(NOP N)指令不影响程序的执行,操作数N是一个0255之间的常数。493.3 PLC基本逻辑指令?位逻辑指令?正/负跳变触点指令?正跳变触点检测到脉冲的每一次正跳变后,产生一个扫描周期的脉冲。?负跳变触点检测到脉冲的每一次负跳变后,产生一个扫描周期的脉冲。I1.0Q1.1Q1.0503.3 PLC基本逻
25、辑指令?位逻辑指令1.触点指令、输出指令2.置位指令、复位指令3.立即I/O指令4.取反触点指令5.空操作指令6.正/负跳变触点指令NOTPN常开触点常闭触点取反立即输入正跳变负跳变()()(R)(RI)()()()()S()()SI输出立即输出置位立即置位复位立即复位513.3 PLC基本逻辑指令?定时器指令1.接通延时定时器(TOR)2.断开延时定时器(TOF)3.保持型接通延时定时器(TONR)523.3 PLC基本逻辑指令?定时器指令设定值:132767定时器号码(0255)INPTT37TON定时器的实际设定时间:T=设定值PT分辨率类型类型TON:接通延时定时器TOF:断开延时定时
26、器TONR:有记忆接通延时定时器533.3 PLC基本逻辑指令?定时器指令?接通延时定时器(TON)?首次扫描,定时器位OFF,当前值为0。当使能输入端(IN)的输入电路接通时,定时器位为OFF,开始从0计数时间。?当前值等于预置的设定值时,定时器位变为ON。梯形图中对应定时器的常开触点闭合,常闭触点断开。?达到设定值后,当前值仍然计数,直到最大值32767。TS=50.1=0.5s计时值计时值设定值Q0.1(T37)设定值Q0.1(T37)I1.0I1.0TST37TONPTINI1.0I1.05()()T37Q0.1543.3 PLC基本逻辑指令?定时器指令?断开延时定时器(TOF)?用来
27、在IN输入电路断开后延时一段时间后,再使定时器变为OFF。?当定时器使能输入端接通时,定时器位变为ON,当前值被清零。?输入电路断开后,开始定时,当前值从0开始增大。若当前值等于设定值,输出位变为OFF。当前值保持不变,直到输入电路接通。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。TOFPTINI1.28T97()T97Q0.1TS=8*0.01=0.08SI1.2I1.2Q0.1Q0.1计时值计时值设定值设定值TS55输入端Q0.1当前值输入端Q0.1当前值设定值设定值M0.1M0.1最大值最大值32767120TS3.3 PLC基本逻辑指令?定时器指令?保持型接
28、通延时定时器(TONR)?首次扫描,定时器位OFF,当前值保持。当输入电路接通时,定时器位为OFF,开始计数时间。当前值等于设定值时,定时器位变为ON,当前值仍然继续计数直到达到32767。?只能用复位(R)指令来复位,使它当前值变为0,同时使定时器位为OFF。TS=120*10msTONRPTINI0.1120T4()T4Q0.1()T4R1M0.1563.3 PLC基本逻辑指令?计数器指令?记录脉冲的上升沿跳变的次数。计数到时,计数器线圈得电。?定时器是对PLC内部的时钟脉冲进行计数,而计数器是对外部的或由程序产生的计数脉冲进行计数。1.加计数2.减计数3.加/减计数4.高速计数器57I0
29、.2C20当前值I0.3C20计数器位3.3 PLC基本逻辑指令?计数器指令?加计数(CTU)?首次扫描,计数器位OFF,当前值为0。当复位输入(R)电路断开,加计数器脉冲输入(CU)电路由断开变化为接通(即CU信号的上升沿),计数器的当前值加1,直至计数最大值32767。?当前值大于等于设定值(PV)时,计数器为被置1。当复位输入(R)为ON或执行复位指令时,计数器被复位,计数器位变为OFF,当前值被清零。583.3 PLC基本逻辑指令?计数器指令?减计数(CTD)?首次扫描,计数器位OFF,当前值为预设值PV。在减计数脉冲的上升沿(从OFF到ON),计数的当前值减1,减至0时,停止计数,计
30、数器位被置1。?装载输入(LD)为ON时计数器位被复位,并把设定值装入当前值。复位,装设定值计脉冲数设定值593.3 PLC基本逻辑指令?计数器指令?加/减计数(CTUD)?首次扫描,计数器位OFF,当前值为0。在加计数脉冲的上升沿,计数器当前值加1,在减计数脉冲输入的上升沿,计数器的当前值减1,当前值大于等于设定值时,计数器位被置位。?当复位输入为ON、或对计数器执行复位指令时,计数器被复位。增计数减计数复位预设值603.3 PLC基本逻辑指令?计数器指令举例产品数量检测检测器PH机械手KM1KM2传送带电机PLC的I/O分配:I0.0 传送带停机按钮I0.1传送带起动按钮I0.2 产品通过
31、检测器PHQ0.0传送带电机KM1Q0.1机械手KM2T37定时器,定时2秒C20计数器,初始值24(每24个产品机械手动作1次)机械手动作后,延时2秒,将机械手电磁铁切断,同时将C20复位。C20复位后,Q0.1和T37也复位613.3 PLC基本逻辑指令?计数器指令举例产品数量检测 电机起动后,电机起动后,Q0.0产生宽度为一个扫描周期的正脉冲,使产生宽度为一个扫描周期的正脉冲,使C20和和T37复位复位 起、停传送带电机 起、停传送带电机每检测到一个产品,每检测到一个产品,I0.2产生一个正脉冲,使产生一个正脉冲,使C20计一个数计一个数 C20每计每计24个数,机械手动作一次个数,机械
32、手动作一次 机械手动作后,延时 机械手动作后,延时2秒,将机械手电磁铁切断,同时将秒,将机械手电磁铁切断,同时将C20复位。复位。Q0.1和和T37也复位。也复位。Q0.0Q0.0I0.224C20T3720C20Q0.1()()I0.0I0.1C20CUPVCTUR()()INPTTONT37T37PQ0.0623.3 PLC基本逻辑指令?高速计数器指令?对脉宽小于CPU扫描周期的高速脉冲准确计数。?定义高速计数器(HDEF)指令?为指定的高速计数器(HSCx)选定一种工作模式。?HSC是高速计数器编号(05);?MODE是工作模式(011)。?高速计数器(HSC)指令?用来激活高速计数器,
33、N为计数器号(05)。说明:高速计数器装入预置值后,当前计数值小于当前预置值时,计数器处于工作状态;当前计数值等于预置值或外部复位信号有效时,可使计数器产生中断;除模式(02)外,计数方向的改变也可产生中断。633.3 PLC基本逻辑指令?高速计数器输入端口643.3 PLC基本逻辑指令?高速计数器的工作模式?内部控制的单向增/减计数器(模式02):即只有一个脉冲输入端,通过高速计数器的控制字节的第3位来控制作加计数或者减计数。该位=1,加计数;该位=0,减计数。?外部方向控制的单向增/减计数器(模式35):即有一个脉冲输入端,有一个方向控制端,方向输入信号等于1时,加计数;方向输入信号等于0
34、时,减计数。?有增和减计数脉冲输入的双向计数器(模式68):即有两个脉冲输入端,一个是加计数脉冲,一个是减计数脉冲,计数值为两个输入端脉冲的代数和。?A/B相正交计数器(模式911):即有两个脉冲输入端,输入的两路脉冲A 相、B相,相位互差90(正交),A 相超前B相90时,加计数;A 相滞后B相90时,减计数。在这种计数方式下,可选择1x 模式(单倍频,一个时钟脉冲计一个数)和4x 模式(四倍频,一个时钟脉冲计四个数)。653.3 PLC基本逻辑指令?高速计数器的工作模式0、1或2663.3 PLC基本逻辑指令?高速计数器的工作模式3、4或5673.3 PLC基本逻辑指令?高速计数器的工作模
35、式6、7或8683.3 PLC基本逻辑指令?高速计数器的工作模式9、10或11(1倍频)693.3 PLC基本逻辑指令?高速计数器的工作模式9、10或11(4倍频)703.3 PLC基本逻辑指令?高速计数器的状态字节?只有执行高速计数器的中断程序时,状态位才有效。713.3 PLC基本逻辑指令?高速计数器的控制字节723.3 PLC基本逻辑指令?高速计数器的预置值和当前值的设置?要设置高速计数器的新当前值和新预置值,必须设置控制字节,令其第5位和第6位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。?然后执行HSC指令,将新数值传输到高速计数器。当前值和预置值占用的特
36、殊内部标志位存储区。SMD162SMD152SMD142SMD62SMD52SMD42新预置值SMD158SMD148SMD138SMD58SMD48SMD38新当前值HSC5HSC4HSC3HSC2HSC1HSC0733.3 PLC基本逻辑指令?高速计数器举例MAININT_0123定义HSC当前值预设值中断连接使能中断激活HSC写控制字节SMB47SMD48SMD52F8743.3 PLC基本逻辑指令?数据传送指令?如果功能框允许输入端(EN)存在“能流”,且功能框准确无误地执行了其功能,那么允许输出端(ENO)将把“能流”传到下一个功能框,此时,ENO1。如果执行错误,那么“能流”就在出
37、现错误的功能框终止,即ENO=0。若I0.1=1,则将VB100的数据传送到AC0MOVB VB100,AC0I0.1MOV-BENINOUTENOVB100AC0VB1004646AC0MSBLSBMOV_DWENINOUTENOMOV_WENINOUTENOMOV_BENINOUTENOMOV_RENINOUTENO753.3 PLC基本逻辑指令?栈存储器和多重输出指令?一个9位的堆栈,栈顶存储当前逻辑运算结果;其他位(层)存储中间运算结果,先进后出。?LD,A,O,LDN,AN,ON?块操作:ALD,OLD?逻辑入栈LPS,逻辑读栈LRD,逻辑出栈LPP763.3 PLC基本逻辑指令?栈
38、存储器和多重输出指令?逻辑入栈LPS,逻辑读栈LRD,逻辑出栈LPP?每一条LPS指令必须有一条对应的LPP指令,处理最后一条支路时必须用LPP指令。?中间的支路都用LRD指令。LD I0.2A I0.0LPSAN I0.1=Q2.1LRDA I0.5=M3.7LPPAN I0.4=Q0.3773.3 PLC基本逻辑指令?直接寻址和间接寻址?PLC将编程元件统一归为存储器单元,存储单元按字节进行编址,无论所寻址的是何种数据类型,通常应指出它在所在存储区域和在区域内的字节地址。每个单元都有惟一的地址,地址用名称和编号两部分组成。783.3 PLC基本逻辑指令?直接寻址和间接寻址?直接寻址?按位寻
39、址的格式为:Ax.y?必须指定元件名称、字节地址和位号。MSB表示最高位,LSB表示最低位。MSBI0LSB0I15I4I3I2I17 6 5 4 3 2 1I 4.5I 14.2字节的位,即位号元件名称(区域标志)字节地址位地址与字节地址之间的间隔793.3 PLC基本逻辑指令?直接寻址和间接寻址?间接寻址?数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址的地址。存储单元地址的地址又称为地址指针。这种间接寻址方式与计算机的间接寻址方式相同。?在处理内存连续地址中的数据时非常方便,而且可以缩短程序所生成的代码的长度,使编程更加灵活。?3种操作:建立指针、间接存取和修改指针。
40、803.3 PLC基本逻辑指令?直接寻址和间接寻址?间接寻址?建立指针?必须用双字传送指令(MOVD),将存储器所要访问的单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身。?例:MOVD&VB200,VD302MOVD&MB10,AC2MOVD&C2,LD14?注意:建立指针用MOVD指令。813.3 PLC基本逻辑指令?直接寻址和间接寻址?间接寻址?间接存取?指令中在操作数的前面加“*”表示该操作数为一个指针。?例:MOVD&VB200,AC0MOVW*AC0,AC1823.3 PLC基本逻辑指令?直接寻址和间接寻址?间接寻址?修改指针?例:INCDAC0INCDA
41、C0MOVW*AC0,AC1833.4 PLC程序框架组成?用户程序结构?主程序?子程序?中断程序?数据块、参数块?程序控制指令?子程序调用指令?中断指令?程序结束指令程序中断程序2子程序2主程序中断程序1子程序m子程序1中断程序n843.4 PLC程序框架组成?用户程序结构?主程序?是用户程序的主体。CPU在每个扫描周期都要执行一次主程序指令。?子程序?是程序的可选部分,主程序调用时才能够执行。?中断程序?是程序的可选部分,只有当中断事件发生时,才能够执行。中断程序可在扫描周期的任意点执行。853.4 PLC程序框架组成?用户程序结构?主程序、子程序、中断程序863.4 PLC程序框架组成?
42、数据块、参数块?数据块?为可选部分,它主要存放控制程序运行所需的数据,在数据块中允许以下数据类型:布尔型,表示编程元件的状态;十进制、二进制或十六进制数;字母、数字和字符型。?参数块?也是可选部分,存放CPU组态数据,如果在编程软件或其他编程工具上未进行CPU的组态,则系统以默认值进行自动配置。873.4 PLC程序框架组成?子程序?建立子程序?子程序调用指令CALL?在使能输入有效时,主程序把程序控制权交给子程序。?子程序条件返回指令CRET?在使能输入有效时,结束子程序的执行,返回主程序中。?软件为每个子程序自动加入无条件返回(RET)指令。883.4 PLC程序框架组成?中断程序?是当控
43、制系统执行正常程序时,系统中出现了某些急需处理的异常情况或特殊请求,这时系统暂时中断当前程序,转去对随机发生的紧迫事件进行处理(执行中断服务程序),当该事件处理完毕后,系统自动回到原来被中断的程序继续执行。893.4 PLC程序框架组成?PLC中断的种类?通信口中断?PLC的串行通信口可由用户程序控制。?I/O中断?包括:上升沿或下降沿中断、高速计数器中断和脉冲串输出中断。?时基中断?包括:定时中断、定时器T32/T96中断。?定时中断以1ms为周期增量,周期时间可为1255ms。定时中断0、定时中断1把周期时间分别写入特殊存储器SMB34、SMB35。?定时器T32/T96中断(TON和TO
44、F),在给定时间间隔到达时产生中断。903.4 PLC程序框架组成?中断指令?全局中断允许/禁止指令?全局中断允许指令ENI?允许所有被连接的中断事件。?全局中断禁止指令DISI?禁止处理所有的中断事件。?CPU进入RUN运行模式时自动禁止所有中断。在RUN运行模式中执行ENI指令后,允许所有中断。?中断返回指令?条件返回指令CRETI?无条件返回指令RETI?编程软件自动在中断程序结尾加上RETI指令。913.4 PLC程序框架组成?中断指令?中断连接/分离指令?中断连接指令ATCH?用来建立某个中断事件(EVNT)和某个中断程序(INT)之间的联系。并允许这个中断事件。?中断分离指令DTC
45、H?用来解除某个中断事件(EVNT)和某个中断程序(INT)之间的联系。并禁止该中断事件。?在调用一个中断程序前,必须用中断连接指令,建立某中断事件与中断程序的连接。923.4 PLC程序框架组成?中断指令?中断程序名称INT?中断事件号EVNT按优先级排列的中断事件933.4 PLC程序框架组成?中断实例定时中断AD采集程序/首次扫描时SM0.1位打开,用于调用初始化子例行程序/当系统处于RUN模式时,SM0.0始终打开,定时器计时/调用中断程序/全局性启用中断/模拟量输入映像寄存器AIW2的值装入VW100943.4 PLC程序框架组成?中断实例定时中断AD采集程序/首次扫描时SM0.1位
46、打开,用于调用初始化子例行程序/当系统处于RUN模式时,SM0.0始终打开,100毫秒放入特殊内存字节SMB34SMB34定义定时中断0的时间间隔,以1ms为增量。/调用中断程序/全局性启用中断/模拟量输入映像寄存器AIW2的值装入VW100953.4 PLC程序框架组成?程序控制指令?程序结束指令?有条件结束(END)指令?当条件满足时结束主程序,并返回主程序的第一条指令执行。?无条件结束(MEND)指令?直接连接母线。程序执行到此指令时,无条件结束主程序,并返回第一条指令。?STEP7-Micro/WIN32编程软件自动在主程序结束时加上一个无条件结束(MEND)指令。963.4 PLC程
47、序框架组成?程序控制指令?暂停指令(STOP)?使PLC从运行模式进入停止模式。?监视定时器复位指令(WDR)?为防止系统故障或程序进入死循环,对系统监视定时器(WDT)进行复位。?跳转与标号指令(JMP,LBL)?跳转指令JMP使程序转到对应的标号LBL处。?循环指令(FOR,NEXT)?当驱动FOR指令的逻辑条件满足时,反复执行FOR和NEXT之间的程序。973.5 梯形图编程注意事项?设置中间单元,使用中间继电器?位存储器?用软件实现,不能接收外部输入信号,也不能直接驱动外部负载。?可以用于逻辑运算。983.5 梯形图编程注意事项?水平不垂直?梯形图的接点应画在水平线上,不能画在垂直分支
48、上。993.5 梯形图编程注意事项?多上串右?有串联电路相并联时,应将接点最多的那个串联回路放在梯形图最上面。?有并联电路相串联时,应将接点最多的并联回路放在梯形图的最左边。这种安排程序简洁、语句也少。1003.5 梯形图编程注意事项?线图右边无接点?不能将接点画在线圈右边,只能在接点的右边接线圈。?将单个线圈放在上面。1013.5 梯形图编程注意事项?双线圈输出不可用?如果在同一程序中同一元件的线圈使用两次或多次,则称为双线圈输出。这时前面的输出无效,只有最后一次才有效。一般不应出现双线圈输出。?有时将所有输出的通断放在一起写。1023.5 梯形图编程注意事项?本节小结?遵循主流设计规范,易于阅读?根据指令长度,判断程序优劣?符合正确的逻辑关系103课外作业?某产品性能测试实验台?在控制柜上有两个控制按钮:启动、暂停,用于控制三个独立的试验。每个试验中,启动对应步进电机转动,暂停对应电机停止转动。?紧停按钮用于触发外部中断,使电机停止转动,并回到初始位置。启动一暂停一启动二暂停二启动三暂停三操作面板试验程序谢谢听讲,下次再见!课件下载请到Email:Pass:robotics下一讲:梯形图程序设计方法