7
西门子6ES7223-1HF22-0XA8产品描述



初研制生产的PLC主要用于代替传统的由继电器接触器构成的控制装置,但这两者的运行方式是不相同的:
(1)继电器控制装置采用硬逻辑并行运行的方式,即如果这个继电器的线圈通电或断电,该继电器所有的触点(包括其常开或常闭触点)在继电器控制线路的哪个位置上都会立即同时动作。
(2)PLC的CPU则采用顺序逻辑扫描用户程序的运行方式,即如果一个输出线圈或逻辑线圈被接通或断开,该线圈的所有触点(包括其常开或常闭触点)不会立即动作,等扫描到该触点时才会动作。
为了二者之间由于运行方式不同而造成的差异,考虑到继电器控制装置各类触点的动作时间一般在100ms以上,而PLC扫描用户程序的时间一般均小于100ms,因此,PLC采用了一种不同于一般微型计算机的运行方式---扫描技术。这样在对于I/O响应要求不高的场合,PLC与继电器控制装置的处理结果上就没有什么区别了。
1、扫描技术 当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。
(1)输入采样阶段
在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
(2)用户程序执行阶段
在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
(1)输出刷新阶段
当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
2、PLC的I/O响应时间
为了增强PLC的抗干扰能力,提高其可*性,PLC的每个开关量输入端都采用光电隔离等技术。为了能实现继电器控制线路的硬逻辑并行控制,PLC采用了不同于一般微型计算机的运行方式(扫描技术)。以上两个主要原因,使得PLC得I/O响应比一般微型计算机构成的工业控制系统满的多,其响应时间至少等于一个扫描周期,一般均大于一个扫描周期甚至长。所谓I/O响应时间指从PLC的某一输入信号变化开始到系统有关输出端信号的改变所需的时间。
FX系列PLC可以通过拨动PLC面板上的RUN/STOP开关来控制PLC的运行与停止。
在不用PLC上的小的拨码开关来控制的时候,而是通过其它的易于操作的开关来控制,查了三菱的资料这样的想法是可行的。
三菱FX系列PLC可以通过外部信号来执行可编程控制器的运行、停止。要运用此项功能既要在设置PLC的参数,又要编写程序。
使用此项功能按以下几个步骤来设置:
1. 在PLC的编程软件中设置使PLC运行的外部输入信号。此项设置在编程软件的PLC参数中设置。此外部输入信号可以在X0到X17中任意一点(需为主单元中的信号)。
2. 将除了控制运行的输入信号以外的任一输入信号作为PLC的停止信号。如X1。
3. 在PLC中编写程序LD M8000 OUT M8035
OUT M8036
LD X001 OUT M8037
按以上的程序X1就可以停止PLC的运行,在编程软件中设置的运行信号就可以将停止后的PLC运行起来。
PLC编程手册中定义如下:
M8035强制运行模式
M8036强制运行指令
M8037强制执行指令
概述
---- 本例说明如何以自由协议实现S7-200与M20 GSM Modem的通信。可实现的功能为:当M20收到GSM短信息时,可以自动向发送方回发一条短信息,信息的内容由用户自行定义。
AT指令:
---- 本例中使用的AT指令主要有四个:
短信息格式选择指令CMGF
---- M20支持两种格式的短信息,PDU格式和TEXT格式。
---- AT+CMGF=0 设置短信为PDU格式(默认)
---- AT+CMGF=1 设置短信为TEXT格式
---- 本例中将使用TEXT格式,因此对M20进行初始化。
读短信息指令CMGR
---- 指令格式为:AT+CMGR=< index >,index一般为1到15的整数,视SIM卡的容量而定,它表示所要阅读的短信息在SIM卡中的存储位置。在本例中,由于收到的短信息在阅读后都会被删除,因此每次收到的短信息都会被保存到个存储位置,在收到短信息后,用AT+CMGR=1即可阅读。
发送短信息指令CMGS
---- 指令格式为:AT+CMGS=< da >,da为目标手机号,如""。M20接到指令后返回一个"〉"提示输入短信内容,短信内容以CHR(26)结束。
删除息指令CMGD
---- 指令格式为:AT+CMGD=< index >,index与读指令中的index含义相同。本例中使用AT+CMGD=1来删除收到的息。
---- 注:所有的指令都以CHR(13)作为结束
PLC程序执行过程:
---- PLC在次扫描时执行初始化子程序,对端口及RCV指令进行初始化,并向M20发送AT+CMGF=1设置短信息格式为TEXT格式。初始化完成后,运行RCV指令使端口处于接受状态。
---- 当M20收到短信息时,会发送 +CMTI: "SM", 1 在PLC的接收完成中断中判断CMTI这四个字符来对M1.0进行置位,在主程序中通过该标志位调用ReadSMS子程序。
---- ReadSMS子程序中执行的操作为:复位子程序的触发条件(复位M1.0),置位M0.0,停止端口的接收,然后向M20发送AT+CMGR=1阅读收到的短信息。置位M0.0的目的是在发送完成中断中判断是哪个子程序执行了发送操作,从而重新对RCV指令进行设置,以接收Modem返回的信息(其他的子程序也采用了相同的做法:SendSM1的触发位为M1.1,子程序执行时置位M0.1;SendSM2的触发位为M1.2,子程序执行时置位M0.2;DelSM的触发位为M1.3,子程序执行时置位M0.3;ReSend的触发位为M1.4,子程序执行时置位M0.4)。Modem在接收到AT+CMGR=1后会将收到短信息的内容发送给PLC,信息的格式为:
---- +CMGR: "REC UNREAD","+86",,"02/03/05,13:44:12+32"
---- CALL ME
---- OK
---- 其中"CALL ME"为短信息的实际内容,该信息转换为十六进制的形式为:
---- 0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 30 31 31 38 34 32 38 36 22 2C 2C 22 30 32 2F 30 33 2F 30 35 2C 31 33 3A 34 34 3A 31 32 2B 33 32 22 0D 0A 43 41 4C 4C 20 4D 45 0D 0A 0D 0A 4F 4B 0D 0A
---- 这样,在发送完成中断中,以M0.0为条件,将RCV指令的接收的起始字符设置为空格符CHR(32)(十六进制的20)用以接受M20发送的短信息内容。在接收完成中断中,用接受缓冲的个字节等于CHR(32)来触发SendSMS1子程序。
---- SendSMS1子程序将从收到短信息的内容中提取出发送方的电话号码,并向M20发送AT+CMGS="发送方号码",Modem在接到该指令后返回的信息为:
---- >
---- 对应的十六进制形式为:
---- 0D 0A 3E 20
---- 其中0D 0A为不可显示字符,20为空格符
---- 这样,在发送完成中断中以M0.1位条件设置接收的起始字符为"〉"CHR(62)用以接受M20发送的提示信息。在接收完成中断中,用接受缓冲的个字节等于CHR(62)来触发SendSMS2子程序。
---- SendSMS2子程序将所要发送的内容加上结束字符CHR(26)发送个给M20。如果短信息正确发送,M20返回 +CMGS: xxx(xxx为该SIM卡已发送的数量);如果信息未能正确发送,则M20返回 +CMS ERROR。在接收完成中断中,用CMGS来触发DelSMS子程序,用ERROR来触发ReSend子程序。