西门子S7 PLC的自由通信口模式(Freeport Mode)的通信协议可自由定义,通信所需要的信息存放在特殊存储字节SMB30中,用户须作如下说明:
奇偶校验
每个字符的位数
波特率
自由通信口模式可以接收和发送数据。本例用一个仿真的打印机程序来描述数据发送,再用一个条形码阅读程序来说明数据接收。
例图
送命令XM丁包含了发送信息缓冲区的起始地址,该地址单元中只包含了发送信息的长度(以字节为单位)。
S7-200系列PLC可提供4种不同的基本单元和6种型号的扩展单元。其系统构成包括基本单元、扩展单元、编程器、存储卡、写入器、文本显示器等。
1.基本单元
S7-200系列PLC中可提供4种不同的基本型号的8种CPU供选择使用,其输入输出点数的分配见表4-11:
表4-11 S7-200系列PLC中CPU22X的基本单元
型 号
输入点
输出点
可带扩展模块数
S7-200CPU221
6
4
—
S7-200CPU222
8
6
2个扩展模块
78路数字量I/O点或10路模拟量I/O点
S7-200CPU224
14
10
7个扩展模块
168路数字量I/O点或35路模拟量I/O点
S7-200CPU226
24
16
2个扩展模块
248路数字量I/O点或35路模拟量I/O点
S7-200CPU226XM
24
16
2个扩展模块
248路数字量I/O点或35路模拟量I/O点
2.扩展单元
S7-200系列PLC主要有6种扩展单元,它本身没有CPU,只能与基本单元相连接使用,用于扩展I/O点数,S7-200系列PLC扩展单元型号及输入输出点数的分配如表4-12所示。
表4-12 S7-200系列PLC扩展单元型号及输入输出点数
类 型
型 号
输入点
输出点
数字量扩展模块
EM221
8
无
EM222
无
8
EM223
4/8/16
4/8/16
模拟量扩展模块
EM231
3
无
EM232
无
2
EM235
3
1
3.编程器
PLC在正式运行时,不需要编程器。编程器主要用来进行用户程序的编制、存储和管理等,并将用户程序送入PLC中,在调试过程中,进行监控和故障检测。S7-200系列PLC可采用多种编程器,一般可分为简易型和智能型。
简易型编程器是袖珍型的,简单实用,价格低廉,是一种很好的现场编程及监测工具,但显示功能较差,只能用指令表方式输入,使用不够方便。智能型编程器采用计算机进行编程操作,将**的编程软件装入计算机内,可直接采用梯形图语言编程,实现在线监测,非常直观,且功能强大,S7-200系列PLC的**编程软件为STEP7-Micro/WIN。
4.程序存储卡
为了保证程序及重要参数的安全,一般小型PLC设有外接EEPROM卡盒接口,通过该接口可以将卡盒的内容写入PLC,也可将PLC内的程序及重要参数传到外接EEPROM卡盒内作为备份。程序存储卡EEPROM有6ES 7291-8GC00-0XA0和6ES 7291-8GD00-0XA0两种,程序容量分别为8K和16K程序步。
5.写入器
写入器的功能是实现PLC和EPROM之间的程序传送,是将PLC中RAM区的程序通过写入器固化到程序存储卡中,或将PLC中程序存储卡中的程序通过写入器传送到RAM区。
6.文本显示器
文本显示器TD200不仅是一个用于显示系统信息的显示设备,还可以作为控制单元对某个量的数值进行修改,或直接设置输入/输出量。文本信息的显示用选择/确认的方法,较多可显示80条信息,每条信息较多4个变量的状态。过程参数可在显示器上显示,并可以随时修改。TD200面板上的8个可编程序的功能键,每个都分配了一个存储器位,这些功能键在启动和测试系统时,可以进行参数设置和诊断。
(3)变频器、PLC、接触器等可安装在一台控制柜内,可就地或远控操作,方式简单灵活。
程序和注解
本程序是一个输入/输出中断程序的范例,计数器从0计到255。如果输入10.0为0,则程序加计数;如果输入10.0为1,则程序减计数。
本程序包括以下三个程序:
Main (主程序) 初始化和计数
INT0 (中断程序0) 输入10.0为1时,减计数。
INT1 (中断程序1) 输入10.0为0时,加计数。
本程序长度为32个字
//标题:事件中断
//********主程序*********
//主程序包括初始化程序和计数程序。
//计数器的存储器标志位M0.0的0或1状态,决定计数方向为加或减计数。
//当输入10.0山0变为1时,产生中断事件0,激活中断程序0 (INT0)。
//中断程序0将存储器位M0.0置成1,导致主程序减计数。
//当输入10.0山1变为0时,产生中断事件1,激活中断程序1 (INT1)。
//中断程序1将存储器位M0.0置成0,导致主程序加计数。
//主程序
LD
MOVB
ENI
ATCH
ATCH
LDN
AB>=
A
EU
INCW
SM0.1
+0, AC0
+0, 0
+1,1
M0.0
16#FE, ACO
SM0.5
AC0
//仅**扫描时,SM0.1才为1,进行以下初始化
//将计数累加器ACO清Oa
//允许中断。
//输入10.0为上升沿时激活事件中断0
//输入10.0为上升沿时激活事件中断1
//如果存储器的标志位M 0.0为0状态
//且计数累加器ACO的当前计数值小于或等于254
//且0.5秒脉冲
//且上升沿
//那么计算累加器ACO加1
LD
AB<=
A
EU
DECW
M0.0
16#1,AC0
SM0.5
ACO
//如果存储器的标志位M 0.0为1状态
//且计数累加器ACO的当前计数值大于或等于
//且0.5秒脉冲
//且上升沿
//那么计算器累加器ACO减1
LD
MOVB
MEND
SM0.0
AC0, QB0
// SM0.0总是1。
//在输出端00.0至00.7显示ACO的当前计数值。
//主程序结束。
//******中断程序0******
//事件中断程序0将存储器的标志位M0.0置成
//此情况下程序减计数。
//
INT 0 //中断事件0减计数。
S M0.0,1 //将存储器的标志位M0.0置成
RETI //中断程序0结束。
//******中断程序1******
//事件中断程序1将存储器的标志位M 0.0置成Oa
//此情况下程序增计数。
INT 1
R M0.0,1
RETI
//中断事件1加计数。
//将存储器的标志位M0.0置成O。
//中断程序1结束。
请参考SIMATIC S丁EP 7编程参考手册的6.2节“中断指令”,为您提供了更多的有关输入输出中断的信息。
(2)采用PLC后,组成闭环自控系统,实现自动调节,运行更加稳定可靠。