PLC的工作原理
PLC概念(基本组成、工作原理)
PLC的数据类型&&寻址方式 (这个地方要分清楚,PLC的存储空间大小(位字节字双字BIT BYTE WORD DWORD)、储存器类型(西门子DID区;三菱XYMDTCRVZ区)、
数据类型(INT16 DINT32 REAL STRING WORD16 DWORD32 BOOL TIME DATE CHAR8 BYTE8 ))
PLC的储存器类型(S7-200)
PLC系统开发流程
PLC STEP7中常数的表达方式(K10,H16,O8,BCD)
三菱中的D0是16位的,两个字节。M0是1位。
西门子1200中的则全是M区,用MB/MW /MD来表示8位16位32位
西门子200smart和200中全是V区
01 PLC概念
PLC(Programmable Logic Controller),可编程逻辑控制器。工业控制用的计算机。
PLC的基本构成
其基本构成有电源、CPU、储存器、输入单元、输出单元、通信接口、扩展接口。
(1)电源:PLC供电,可以是220VAC或者24VDC,CPU处理单元所需要的电源为5VDC。
(2)CPU(中央处理单元),包含了控制器、运算器、寄存器。
(3)存储器是之具有记忆功能的半导体电路,可以存放系统程序、用户程序、逻辑变量。分为ROM(Read only Memory 系统存储区)和RAM(Random Access Memory)。
i.ROM存储区分为系统管理程序、用户程序编辑以及指令解释程序、子程序调用及管理程序
ii.RAM存储区包括用户程序存储区和数据存储区,分别用来放置用户程序和程序执行过程中各点的ON/OFF状态量。用户存储区的数据可读可写执行。采用的材质为CMOS RAM或者EPRAM和EEPRAM。容量一般以“字”为单位(16个位为1字,8个位为1字节)。所以我认为建议编程的时候使用偶数编程。
(4)¥输入单元是指接收信号的单元,检测信号传来的信息并且将其转化为高低电平的数字量信号。(分为开关量和模拟量,模拟量通常采用A/D转换电路,把模拟量转换成数字量。数字量采用的接口电路比较多,分为内部直流输入(12V或者24V)、外部交流输入(100-120V、200-240V)、外部交直流输入、与信号输出相连的输入电路。)(交流输入、直流输入、源型漏型、共阴极共阳极、外界信号输出接PLC输入单元(PNP,NPN))
(5)输出单元指将CPU处理之后的弱电信号转化为电平信号。(电平信号是指设备输出信号和输入信号的功率比然后取对数值,通常用P表示,P=lgP2/P1。)(输出接口分为开关量和模拟量。模拟量接口通常通过D/A转换电路,数字量转换成模拟量,数字量输出电路形式比较多,有继电器输出、晶体管输出(PNP,NPN)、晶体闸输出。)
(6)通信接口,和监视器、打印机、其他PLC、计算机等设备实现通讯。
(7)扩展接口,给PLC增加一些专用功能模块,比如高速计数模块、闭环控制模块、运动控制模块、中断控制模块。
PLC的工作原理
PLC通电→内部处理→通信处理→自诊断→输入采样→用户程序执行→输出刷新
PLC采用周期循环扫描的方式,集中输入集中输出。
优点是:可靠性高、抗干扰能力强。缺点是:响应速度慢、响应滞后。PLC会采用WDT(看门狗)来监视扫描是否超过预定时间。
内部自处理:包括硬件初始化、I/O模块配置检查、停电保护范围设定等等。在自诊断测试阶段,CPU检测PLC各模块的状态,若出现异常立即进行诊断和处理,同时给出故障信号,点亮CPU面板上的LED指示灯。当出现致命错误时,CPU被强制为STOP方式,停止执行程序。CPU的自诊断测试将有助于及时发现或提前预报系统的故障,提高系统的可靠性。
通信处理阶段:PLC和自身带有CPU的智能模块以及其他外部设备进行通信,完成数据的收发,响应编程器的命令,更新编程器显示的内容,更新时钟以及特殊寄存器的内容。在通信处理阶段,CPU检查有无通信任务,如果有则调用相应进程,完成与其他设备(例如,带微处理器的智能模块、远程I/O接口、编程器、HMI装置等)的通信处理,并对通信数据做相应处理。
(自诊断→输入采样→用户程序执行→输出刷新→)为一个扫描周期
输入采样阶段:扫描所有的输入端子并且将其的状态(0/1)存放到输入寄存器(PII)中。然后关闭输入通道,进行下一步程序。这种方式可靠性高,但是会有一定的时间延迟,在大型的项目中,由于时间的关系,可能会采取定期输入取样、直接输入取样、中断输入取样、智能I/O接口模块取样,用来提高速度。
用户程序执行阶段:此阶段中,数据从输入寄存器(PIQ)和内部元件寄存器(内部继电器、计数器、计时器)中,将有关元件的状态和数据取出,按照程序中的逻辑运算和算术运算,将结果写到输出映像寄存器和相关存储器中。所以,在PLC内部,内部元件寄存器的状态是一直在改变的。
输出处理阶段:程序执行完成后,把内部元件寄存器中的所有输出继电器状态在输出阶段一次性转存到输出锁存器中,经过隔离、驱动功率放大电路输送到输出端,并且外部PLC接线驱动实际负载。
输入输出滞后时间:该时间又称为系统响应时间,包括输入电路滤波时间、输出电路滞后时间、因扫描工作方式产生的滞后时间。PLC的响应延迟一般是几毫秒-几十毫秒,对于一般的系统没有影响。如果需要时间短的系统,我们可以采用扫描速度快的PLC或者采取中断等措施。
(1)输入电路滤波时间。主要是由于外部传入的信号可能存在噪音干扰、尖峰电压、外部抖动会影响我们的输入信号。所以使用RC滤波电路(利用电压源和电流源驱动电容和电阻组成的电路)和光耦合器(在输入侧采用光耦来切断内部与外部线路电气上的联系)来消除这些影响。滤波电路的时间常数决定了滤波时间的长短。
(2)输出模块电路滞后时间:与类型有关,继电器输出模块的滞后时间一般为10ms,双向晶闸管的滞后时间为1ms-10ms,晶体管的滞后时间为1ms以下。
(3)由扫描工作方式引起的滞后时间:长可以达到2-3个扫描周期。
02 PLC的数据类型
03 二进制(BIN: BINARY NUMBER)
硬件内部的数据处理是按照二进制进行的
负数的处理,也是以二进制的补码来实现的
用途:内部处理
04 八进制(OCT:OCTAL NUMBER)
在三菱FX系列中,输入继电器、输出继电器的软元件编号都是X0~X7 Y010~Y017
用途:输出入继电器软元件编号
05 BCD码(BCD: BINARY CODE DECIMAL)
BCD码就是将10进制的数字,用二进制的形式表示出来,比方说10的BCD码就是
用途:BCD数字开关,7段码显示器
06 实数(浮点数数据)
在三菱FX系列中,采用二进制进行实数运算,采用10进制进行实数监控
字符串常数多32位
字符长度位8位,所以 D100(16位)可以代表两个字符
字符串的数据,从指定的位置开始(D100或者M100开始都可以),当碰到OOH代码(也就是NULL代码,需要16位)的时候,表示字符串结束,如果没有碰到OOH或者只碰到一般,是不会检测到字符串结束的。
三菱FX系列中位的位数的指定(KnX0 ………)
位软元件的处理
像X Y S M 这些处理ON/OFF信息的软元件是位软元件
像T C D R 这些处理数值信息的软元件是字软元件
但是,我们的位软元件经过组合也可以当做字来使用。以位数Kn和起始软元件的编号的位数为4位单元,K1K4表示16位;K1k8表示32位
连续字的指定
子软元件的位指定(D100.E)
(位(BOOL)→字节(BYTE)→字(WORD)/整数(INT)→双字(DWORD)/双整数(DINT)/浮点数(REAL))
ASCII/字符串(STRING)
1个ttl电平信号为1位;8个位为一个字节;2个字节为1个字;2个字为1个双字。
位也就是BOOL,布尔型,范围为 0 / 1
字节的范围为 0—255;0-FF;相邻的8个为(0-7)(IB1=I1.0~I1.7)
字的范围为 0—65535;0000-FFFF;相邻的两个字节(IW2=IB2+IB3)
双字的范围为 0—2的32次方;FFFFFFFF;相邻的两个字(ID4=IW4+IW6=IB4+IB5+IB6+IB7)
寻址方式有按位寻址、按字节寻址、按字寻址、按双字寻址
按位寻址:I0.0 I0.1 I0.2 I1.5 I2.7 I2.8(错误)
按字节寻址:VB0 VB1 VB2 VB3… (间隔为1)
按字寻址:VW0 VW2 VW4 VW6 VW32…(间隔为2)
按双字寻址:VD0 VD4 VD8 VD32….(间隔为4)
西门子的数据存储类型是高字低位,怎么理解?
MD100
MW100MW102
MB100MB101MB102MB103
M2/1/0M2/1/0M2/1/0 M2/1/0
其中,M103.0就是高字节的低位;M100.7就是低字节的高位
三菱的数据存储类型是高字高位,怎么理解?(存储从右往左依次增大)
D100
D101D100
D101. F/E/D/C/B/A/9/8/7/6/5/4/3/2/1/0D100.F/E/D/C/B/A/9/8/7/6/5/4/3/2/1/0
其中,D101.F就是高字节的高位;D100.0就是低字节的低位
①
立即寻址
②
直接寻址
a)地址
b)符号地址
③
间接寻址
a)存储器间接寻址
i.16位指针(DB、T、C)
ii.32位指针(存储器间接寻址)
b)寄存器间接寻址
i.32位指针存储区内部寻址
ii.32位指针存储器交叉寻址
07 PLC的储存器类型(S7-200)
V存储器(变量存储器),一般用来存放逻辑的中间结果,很常见。
M存储器(标志存储器),一般用来标志。不常用。MB0-MB13 这14个字节存储
在EEPROM中保存,断电保持。
SM存储器(系统存储器):在F1帮助中可以查看,或WIN中符号表中有S7-200指令
SM0.0:该位总是打开
SM0.1:扫描的时候打开,用于初始化程序。
SM0.5:时钟脉冲,0.5s闭合,0.5s打开。
L存储区(局部存储区):V存储区为全局有效,而L存储区只是在局部有效。局部存储区需要CPU进行动态分配,当中断程序或者调用一个子程序的时候,CPU会分配局部存储器给中断程序或者子程序。另外,局部存储区在分配的时候需要进行初始化,因为给的数据是随机的。
AC寄存器(累加寄存器):可以向子程序传递参数,储存计算的中间结果。S7-200中提供了4个32位累加器(AC0 AC1 AC2 AC3)。
话外:S7-300中的寄存器有:ACCUx累加寄存器 、 AR1/AR2地址寄存器、 数据块寄存器、状态字
S7-300中的存储区有:I/Q 输入输出过程映象区、M(位存储区)、T定时器、C计时器、PQ/PI 立即访问输出输入模块、 DB共享数据块、 DI 背景数据块、 L局部数据
08 PLC系统开发流程(距离实现电动机正反转)
(1)明确系统的控制要求
系统要求3个按钮控制正反转和停转,并且要求对电动机进行过载保护,另外正反转 自锁和互锁
(2)确定输入输出设备,并且为其分配相应的I/O端子
(3)绘制系统控制线路图
主电路、控制电路
(4)编写PLC控制程序
正转控制、反转控制、停转控制、过载保护
(5)程序调试
(6)安装系统控制线路,并且进行现场调试
程序调试好之后,现场调试。(硬件问题&&软件问题)
(7)系统投入运行
试用一段时间
09 STEP7中常数的表达方式
STEP7中常数值可以是字节、字、双字,CPU是使用二进制方式储存常数的。在STEP7中,常数也可以使用十进制、十六进制、ASCII码、浮点数等格式进行表示。
B#W16、W#16#、DW#16# 表示 16进制字节常数、16进制字常数、 16进制双字常数
2#表示二进制常数
L#表示32位双整数常数
P#表示地址指针常数
S5T#表示16位S5时间常数
T#表示带符号的32位IEC时间常数
DATE是ITC的时间常数
C#表示16位计数器常数(BCD码)
ASCII字符使用单引号’’表示,每个ASCII码占用一个字节
输入常数的时候一定要使用英语的标点符号。