一、目的:
1. 掌握交通信号的工作原理
2. 进一步熟悉西门子S7-300PLC编程软件的使用方法和程序输入、下载和调试方法;
3. 掌握S7-300PLC定时器的使用方法
二、设备:
1.PLC实验板(西门子S7-300)
2. 开关按钮1个
3. 指示灯6个(也可直接使用S7-300PLC输出模块输出指示灯)
4. PC机和STEP 7编程调试软件
三、内容:使用S7PLC实现交通信号灯的控制
交通信号灯模型如图1所示。控制要求如下:自动开关合上之后,东西绿灯亮8秒灭,黄灯亮3秒之后灭,红灯亮10秒后闪2秒然后绿灯亮......循环,对应东西绿黄灯亮时,南北红灯亮9秒后闪2秒,接着绿灯亮9秒后闪秒灭,黄灯亮3秒,红灯又亮....循环。当断开自动开关时,交通信号灯立刻停止工作。
根据控制要求画出交通信号灯的时序图如图2所示:
在工业控制中,某些输入量(如压力、温度、流量、转速等)是连续变化的模拟量,某些执行机构(如伺服电动机、调节阀、记录仪等)要求plc输出模拟信号,而PLC的CPU只能处理数字量。模拟量首先被传感器和变送器转换为标准的电流或电压,如4~20mA,1~5V,0~10V,PLC用A/D转换器将它们转换成数字量。这些数字量可能是二进制的,也可能是十进制的,带正负号的电流或电压在A/D转换后一般用二进制补码表示。
传感器带模拟量输出,模拟量输入,(模块的意思是把你的电压或电流值转换成数字量,然后通过斜率表格就能计算出你当前的温度或压力。)
如果你要求读取温度值或压力值时,那你的传感器必须带模拟量输出和模拟量输出。这样的话你买个模拟模块,把模拟模块跟PLC进行连接,传感器的模拟量输出和输入跟模块进行连接(当然模块上有接线图这你不必担心)。当通上电以后,模块自动检测传感器当前的值然后把它转换成数字量,你根据斜率表计算出它的斜率公式,这样你就能知道它当前的温度值或压力值了。
D/A转换器将PLC的数字输出量转换为模拟电压或电流,再去控制执行机构。模拟量I/O模块的主要任务就是完成A/D转换(模拟量输入)和D/A转换(模拟量输出)。
例如在炉温控制系统中,炉温用热电偶检测,温度变送器将热电偶提供的几十毫伏的电压信号转换为标准电流(如4~20mA)或标准电压(如l~5V)信号后送给模拟量输入模块,经A/D转换后得到与温度成比例的数字量,CPU将它与温度设定值比较,并按某种控制规律(如PID)对二者的差值进行运算,将运算结果(数字量)送给模拟量输出模块,经D/A转换后变为电流信号或电压信号,用来调节控制天然气的电动调节阀的开度,实现对温度的闭环控制。
有的PLC有温度检测模块,温度传感器(热电偶或热电阻)与它们直接相连,省去了温度变送器。
大中型PLC可以配置成百上千个模拟量通道;它们的D/A,A/D转换器一般是12位的。模拟量I/O模块的输入、输出信号可以是电压,也可以是电流;可以是单极性的,如0~5V,0~10V,1~5V,4~20ms,也可以是双极性的,如+50mV,±5V,±10V和±20mA,模块一般可以输入多种量程的电流或电压。
A/D,D/A转换器的二进制位数反映了它们的分辨率,位数越多,分辨率越高,例如8位A/D转换器的分辨率为2-8=0.38%;模拟量输入/输出模块的另一个重要指标是转换时间。
图1
图2
1.PLC硬件配置
控制系统中的硬件配置如下:
序号 | 名称 | 型号说明 | 数量 |
1 | CPU | CPU313 | 1 |
2 | 电源模块 | PS307 | |
3 | 开关量输入模块 | SM321 | |
4 | 开关量输出模块 | SM322 | |
5 | 前连接器 | 20针 | 2 |
2.分析控制要求进行输入输出点分配,并根据分配画出外部接线图。
输入信号名称
地址
自动开关按钮SB1(常开)
I0.0
序号
输出信号名称
东西绿灯HL1
Q4.0
东西黄灯HL2
Q4.1
东西红灯HL3
Q4.2
南北绿灯HL4
Q4.3
南北黄灯HL5
Q4.4
6
南北红灯HL6
Q4.5
输入输出模块接线图
3.程序设计: 设计提示:可先采用SP指令,产生周期为23秒,占空比为11:12的矩形波。再将其分割成所需要的矩形波。
12位二进制数的大值为4095(212–1),对于单极性输入信号(例如DC0~10V、0~20mA或4~20mA),为了计算方便,三菱的FX系列plc额定输入范围对应的输出值为0~4000,数据放在一个字的右侧(低位),称为右对齐。0~4000与12位二进制数可表示的范围0~4095基本上相同。
S7-200和GE的90-30的12位模拟量输入模块的输出值范围为0~32000。A/D转换后的数据的高位为符号位,正数的符号位为0,负数的符号位为1。有效位数加符号位一共13位,它们被左移3位后,放在16位字的高13位,低3位添零,相当于实际的有效值被乘以8。因此32000实际上相当于右对齐的转换值4000,这种处理方法称为左对齐。
对于双极性的模拟量(例如-10V ~+10V),FX系列的额定输入范围对应于数据值–2000~+2000(右对齐)。S7-200和GE的90-30对应于–32000~+32000,仍然为左对齐,右边空出来的位添0。
S7-300/400的模拟量输入模块的位数是可以设置的(9~14位),不管转换后的实际位数是多少位,单极性模拟量转换后的输出值均为0~27648,双极性为–27648~ 27648(对应的十六进制数为9400H~7C00H)。模拟量输入值即使超过额定值18.5%,也不会产生溢出。
如果不是采用左对齐,而采用右对齐(转换值放在一个字的右侧),模拟量满量程时A/D转换器不同的位数得到的转换值的位数不同,给后续的处理带来困难,采用左对齐则可以解决这一问题。