图5-3 S7-200 CN CPU 侧面
图5-4 S7-200 CN EM(扩展模块)正面
图 5-5 S7-200 CN EM 侧面 5.1.2 可编程序控制器的工作过程
可编程序控制器是通过执行用户程序来完成各种不同控制任务的。为此采用了循环扫描的工作方式。具体的工作过程可分为4个阶段。 第一阶段是初始化处理。
可编程序控制器的输入端子不是直接与主机相连,CPU对输入输出状态的询问是针对输入输出状态暂存器而言的。输入输出状态暂存器也称为I/0状态表.该表是一个专门存
21
放输入输出状态信息的存储区。其中存放输入状态信息的存储器叫输入状态暂存器;存放输出状态信息的存储器叫输出状态暂存器。开机时,CPU首先使I/0状态表清零,然后进行自诊断。当确认其硬件工作正常后,进入下一阶段。 第二阶段是处理输入信号阶段。
在处理输入信号阶段,CPU对输入状态进行扫描,将获得的各个输入端子的状态信息 送到I/0状态表中存放。在同一扫描周期内,各个输入点的状态在I/0状态表中一直保持不变,不会受到各个输入端子信号变化的影响,因此不能造成运算结果混乱,保证了本周期内用户程序的正确执行。 第三阶段是程序处理阶段。
当输入状态信息全部进入I/0状态表后,CPU工作进入到第三个阶段。在这个阶段中,可编程序控制器对用户程序进行依次扫描,并根据各I/0状态和有关指令进行运算和处理,最后将结果写入I/0状态表的输出状态暂存器中。 第四阶段是输出处理阶段。
段CPU对用户程序已扫描处理完毕,并将运算结果写入到I/0状态表状态暂存器中。此时将输入信号从输出状态暂存器中取出,送到输出锁存电路,驱动输出继电器线圈,控制被控设备进行各种相应的动作。然后,CPU又返回执行下一个循环的扫描周期。
5.2 S7-200的扩展模块
除了CPU221外,S7-200的其他CPU型号都可以附加扩展模块,以增加I/O点数、扩展通信能力和一些特殊功能。
S7-200的扩展模块包括:
? ? ? ?
数字量I/O扩展模块 模拟量I/O模块 通信模块 功能模块
不同类型的模块可以组合搭配,一起做S7-200 CPU的扩展模块。 5.2.1数字量I/O扩展模块
数字量I/O扩展模块有:
? o o o ?
EM221:数字量输入扩展模块。包括
8点 x 24VDC 8 x 120/230VAC 16 x 24VDC
EM222: 数字量输出扩展模块
22
o o o o o ? o o o o o o
4 x 24VDC/5A 4 x 继电器/10A 8 x 24VDC/0.75A 8 x 继电器/2A 8 x 120/230VAC/0.5A
EM223:数字量输入/输出混合模块
4 x 24VDC输入;4 x 24VDC/0.75A输出 4 x 24VDC输入;4 x 继电器/2A输出 8 x 24VDC输入;8 x 24VDC/0.75A输出 8 x 24VDC输入;8 x 继电器/2A输出 16 x 24VDC输入;16 x 24VDC/0.75A输出 16 x 24VDC输入;16 x 继电器/2A输出
不同类型的数字量模块可以同时连接到CPU后面,只要注意各自的电源连接就可以了。 数字量I/O接线
5.2.2模拟量扩展模块
除了CPU224 XP外有两通道输入/一通道输出的简单模拟量I/O组外,其他CPU都需要加模拟量扩展模块才能获得模拟量I/O能力。
? ? ? ?
EM231:4通道电源/电流模拟量输入 EM231 RTD:2通道热电阻温度输入模块 EM231 TC:4通道热电偶温度输入模块
EM235:4通道电压、电流输入/1通道电压、电流输出模块
5.2.3通信模块
除CPU本体上的通信口可以支持PPI/MPI和自由口通信之外,S7-200系列使用扩展模块支持更多的通信模式。 这些通信模块有:
? EM277:PROFIBUS-DP/MPI通信模块。带DB-9插座,可连接到PROFIBUS-DP和MPI
网络上。EM277也可以用于连接西门子的HMI产品
23
? EM241:模拟音频调制解调器(Modem)模块,带RJ11电话插口。支持自动电话拨号
等功能
CP243-1:以太网模块,带RJ45接口,可连接到支持TCP/IP标准的以太网中,与西
门子的其他CP243模块、CP343/CP443模块,或西门子软件(OPC Server)通信
CP243-1 IT:带因特网功能的以太网模块,除CP243-1的功能外,还支持FTP、HTTP、
E-mail等IT功能
CP243-2:AS-Interface(执行器-传感器接口)主站模块。AS-Interface从站可以连
接到端子上。一个完整的系统还需要AS-Interface电源等设备
5.2.4功能模块
S7-200目前有一种特殊功能模块:
?
?
?
? EM253:定位处理模块,支持开环速度和定位控制。一般用于控制步进电机控制器和
伺服电机控制器。支持RS422/RS-485差动输出和漏极开路输出。每个模块可以控制一个轴。使用多个模块的情况下也不能进行复杂的插补计算
5.3 plc程序的实现
S7-200的数据主要分为:
? o o o o ? o o o o
与实际输入/输出信号相关的输入/输出映象区:
I:数字量输入(DI) Q:数字量输出(DO) AI:模拟量输入 AQ:模拟量输出
内部数据存储区
V:变量存储区,可以按位、字节、字或双字来存取V 区数据 M:位存储区,可以按位、字节、字或双字来存取M区数据
T:定时器存储区,用于时间累计,分辨率分为1ms、10ms、100ms三种 C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数。CPU提供
了三种类 型的计数器:一种只能增计数;一种只能减计数;另外一种既可 以增计数,又可以减计数
数据长度 (二进制位) 寻址格式 数据类型 取值范围
24
BOOL(位) 1(位) 8 BYTE(字节) (字节) INT(整数) 16 (字) WORD(字) DINT (双整数) DWORD (双字) REAL (实数) 32 (双字) 布尔数 真(1);假(0) (二进制位) 无符号整数 0 ~ 255;0 ~ FF(Hex) - 32768 ~ 32767; 8000 ~ 7FFF(Hex) 0 ~ 65535; 0 ~ FFFF(Hex) - 2147483648 ~ 2147483647 8000 0000 ~ 7FFF FFFF(Hex) 0 ~ 4294967295; 0 ~ FFFF FFFF(Hex) -3.402823E+38 ~ -1.175495E-38(负数); +1.175495E-38 ~+3.402823E+38(正数); 0.0 ASCII字符、 汉字内码(每个汉字2字节) 1 ~ 254个ASCII字符、 汉字内码(每个汉字2字节) ※有符号整数 无符号整数 有符号整数 无符号整数 IEEE 32位 单精度浮点数 字符列表 ASCII 8/个 STRING (字符串) (字节) 字符串 图5-6 S7-200支持的数据格式
5.4 本程序设计思路
我所设计的程序要求要求在无动力的情况之下,人工移动机械手使其完成任意的动作。在打开动力后,按下“示教”按钮,系统可以演示处在无动力时的所有动作。
我的想法是利用机械手各部位限位开关的跳变进行存储以及提取,从未而实现机械手的运动。
无动力人工运动时,各个限位开关的负跳变对应机械手的各个动作,需要注意的是,任何一个跳变所对应的动作是相反的。例如:缩回到位传感器从1跳变到0时,对应的动作是“机械手伸出”。因此在程序的内部必须进行一步从限位开关到机械手运动的转换,这在其他同学的程序中是没有的。
具体做法如下:机械手一共有8个限位开关,在出现跳变时也对应了8个不同的动作。如果出现负跳变,则将此限位开关的跳变存入V区的某个地址。每个地址有8个位,正好对应机械手的8个动作。(实际上在存储时没有用到VX.3,因为在plc内部并没有用到Q0.3,因此我在编程过程中也不用0.3这一位,这样做可以是程序在调试时更加方便,总体的风格
25