3-基于PLC的加热炉炉温控制系统设计与应用 - 图文(7)

2019-08-29 18:46

第4 章 加热炉炉温PLC软硬件设计

NOP

MOV C , SDATA ;读 SHT 的应答位 SETB SHTSCK ;结束应答位 MOV SHTACK, C ;保存

CLR SHTSCK ;第 9 个时钟结束,SHT 释放 DATA 总线 ;@R0 为保存测量结果地址指针,由主程序调用子程序时给出 SETB EA ;开中断,等待测试结束,应答

SETB CONVBT ;等待时间超过 234ms,说明无 SHT 传感器

MOV CONVER,#240 ;设置等待时间为 240ms,如果 CONVER 减为 0,则无 SHT11

WAITSH:MOV A ,CONVER JZ SHTEND

JNB SDATA ,ONSH11 ;等待测量结束,fosc=11.0592M,测量时间 =234ms SJMP WAITSH

SHTEND:CLR CONVBT ;未检测到 SHT11 传感器,清标志位返回 RET

ONSH11:NOP NOP CLR EA

CLR SHTSCK ;开始启动数据,测量结束不加时钟上升沿 READS3:MOV R5 , #8 CLR A

READSH:SETB SHTSCK NOP

MOV C , SDATA ;读一位 CLR SHTSCK RLC A

DJNZ R5 , READSH

20

燕山大学工学硕士学位论文

CLR SDATA ;DATA=0,应答 ACK NOP

SETB SHTSCK NOP

CLR SHTSCK NOP

SETB SDATA ;应答结束,释放 DATA 线,应答位必须在 SCK=0 期间变化

MOV @R0 , A ;保存结果 INC R0

DJNZ R6 , READS3 SETB SDATA ;读结束 SETB EA RET

硬件电路是组成通信网络的物理基础,而通信协议是保证网络可靠通信的必要条件。因此,只有设计出严密、合理的通信协议,才能确保多主机通信网络的正常运行。

1)总线“忙”状态的检测

在编写软件时,要设置一个总线“忙”状态标志 BUS_BUSY,如前所说,当单片机接收到总线发送数据的起始位时,产生中断。在中断子程序中置位“忙”标志位,中服务子程序如下:

CLR EX0 ;检测到起始位后关中断,避免以后接收数据时,每个下降沿产生中断

SETB BUS_BUSY ;总线“忙”标志置位,在总线“忙”期间不允许占用总线 MOV BUSYT,#3 ;接收到起始位先延时 3ms,以后每接收到一个字节刷新延时为 2ms

MOV TH0 ,#0FCH ;用定时器定时 1ms,按 fosc=11.0592MHz 计算 MOV TLO ,#66H ;重写时间常数,保证计时准备 RETI

在串行中断子程序中,每接收一个字节后都刷新延时为 2ms,只要总线上有数

21

第4 章 加热炉炉温PLC软硬件设计

据发送,延时就会不断被刷新。同时,用定时器 T0 定时 1ms,每当定时到,延时时间减 1ms,这样,当总线发送数据结束,延时不再被刷新。于是,总线停止发送 3ms 后,延时到,则清除总线“忙”状态,允许各终端设备使用总线,如果有数据即可以向总线发送了。同时,要重开中断,使 EX0=1,准备再次检测总线上的起始位。需注意的是,在开中断前要清除中断请求标志位,使 IE0=0,因接收数据时的下降沿已使 IE0 被置位。

2)终端设备发送数据的条件

当某个终端设备采集到数据需要向其它设备发送时,先置位待发送标志位 WAIT_SEND=1,然后检测总线“忙”标志位是否为 1,若总线忙则等待,否则便可以发送。发送后要等到接收端的回复确认“接收正确”才能清除待发送标志,表示本次发送成功。从本次发送结束开始计时 20ms,如果时间到而未收到回复,在总线空闲状态下应再次发送,直至收到回复确认信息方可清除发送标志,确保发送数据真正到达接收端。在 20ms 内收到回复后,在清除待发标志的同时也可取消延时。对于接收者,在收到数据后应立即回复,不需延时,以免总线被其它设备所抢占而延误回复。

3)避免多个终端设备同时抢占总线的解决方法

当终端设备需要发送数据时,总线处于空闲状态下,可允许占用总线发送数据。但是,当总线处于“忙”状态时,只能进入等待状态或设置等待标志而处理其它任务。在总线退出“忙”状态后,也不能立即进入发送状态。主要因为接收端需要向发送端回复,需要占用总线。还有就是一旦有 2 个或 2 个以上的设备进入等待状态后,会同时检测到总线退出忙状态,这样的结果会造成同时抢占总线进入发送状态,出现总线错误。为了避免这种现象发生,终端设备在进入等待状态,总线退出忙状态后,要再随机延时 8~16ms(给接收端留有回复的时间),才能进入发送状态。因各终端设备的随机延时是不同的,延时短的则先行抢占总线进入发送状态,未抢占总线的设备便再次进入等待状态。在实际运行中也有可能2 个设备同时抢占总线,造成发送错误。在收到回复错误信息或者回复无法识别时,很可能是因为总线出现错误。在这种情况下,发送端应再次随机延时 8~16ms,总线空闲时,才能进行再次发送,两次可随机延时,这样基本上可以消除多个终端同时抢占总线的现象了。

22

燕山大学工学硕士学位论文

4)收/发终端设备的确认与识别

在多主机网络模式中,由于每个终端均可以向任何一个终端发送数据或控制命令时,发送端需要发送接收端的地址,而接收端还要识别出发送端。所以,每个终端在发送数据时,应发送本机地址。因此,通信协议要设计每个报文的组成,即由多少帧组成,包括几组帧,每个报文可有固定帧或不限帧。如:同步字符(起始标志字节)、接收端地址、发送端地址、控制命令、数据帧、校验帧、结束帧等。如果不限帧,应有该报文的长度信息。每个报文应尽量减少帧数,以免发送端占用总线时间过长。接收端的回复要短,以能够确认接收正确和错误为原则。同时要根据网络的最远距离,在保证通信准确的基础上尽量提高通信波特率、通信速度、总线的使用率。最后还需强调一点,在这种通信模式中,单片机要工作在方式 1,而不能工作在方式 3,每个报文不能再发送带 TB8 位的地址帧,因每个终端设备要全程接收总线上所有数据,以监视总线的“忙”状态[49]。

4.2 S7-300 PLC的编程方法

4.2.1 Step7编程软件包构成与编程方式

西门子S7-300系列的PLC产品编程采用标准Step7软件包。软件包及其包含的应用工具如图4.3所示。

图4.3 Step7软件包组件示意图

SIMATIC管理器是软件包的管理系统,PLC控制系统的构建是在管理框架的基础上完成的,使用PLC编程软件包编程过程如图4.4所示。

23

第4 章 加热炉炉温PLC软硬件设计

图4.4编制用户程序过程

使用标准Step 7编程软件包编程有如下5个步骤: ①建立和管理控制项目;

②PLC系统配置(模块等硬件配置、通信系统配置); ③符号管理与编制控制程序; ④传送程序到PLC主机; ⑤控制系统测试。

由编程过程概况可知,②与③两步次序可以变换。 4.2.2 编程过程分析

(1)编程软件主窗口与项目文件系统

Step7软件包安装后,通过双击桌面软件图标成运行软件,打开SIMATIC Manager管理器窗口主界面。开始新设备控制程序编制时,首先需要建立新的项目文件系统,从管理器主窗口菜单文件项(File)的下拉菜单中选择新建项目向导,即进入建立新项目向导对话框。在对话框中选择PLC主机型号(例中选择主机CPU3121FM),单击NEXT按钮,进入对话框,选择程序块类型与编程方式,选择

24


3-基于PLC的加热炉炉温控制系统设计与应用 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2010级模拟电子技术基础 - 教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: