1 引言
由于plc结构紧凑、可靠性高、灵活性强,因而广泛应用于各种自动化系统。现在普遍采用触摸屏加plc的方法来监控设备,但触摸屏视角窄、不适应恶劣环境,且plc的数据存储能力相当有限、不易实现大规模网络互联。有鉴于此,我们采用优秀的可视化软件visual basic,由计算机加plc组建监控系统。该系统既克服了由触摸屏加plc组建的监控系统的不足,又可完成对设备的实时监控。
2 串行通讯协议
计算机与plc通讯时,一般由计算机发命令给plc,启动通信,plc收到命令后自动发回应答。下面给出了命令帧、应答帧以及帧检查的结构。
fcs(frame checksum)表示报头开始到报文结束间所有数据执行逻辑加操作所得的结果。
它由两位ascii码字符组成,每次plc接收到计算机发送过来的一帧数据,即计算其校验和,结果记为fcs2,将fcs2与帧中所包含的fcs1比较,可检查该帧是否有数据错误。如果有数据错误,plc立即发送错误信息给计算机,利用这一机制,有效防止了数据传输错误。
3 串行通信口初始化
3.1 计算机串行通信口初始化
vb的mscomm控件通过串行端口传送和接收数据。因此,可通过对visual basic的mscomm控件的相关属性的设置来对串口进行初始化。
mscomm控件的主要属性如表1
计算机串口初始化程序段如下:
with mscomm1
.portopen = false
.commport = 1 file://设置通信端口号为1
.settings=“9600,n,8,1” file://波特率为9600,不作
file://字符校验,8位数据位,1位停止位
.portopen=true file://打开通信端口
.inputmode=cominputmodebinary file://以字节方式接收数据
end with
3.2 plc串行通信口初始化
西门子s7-200可以采用用户定义通信协议(自由口)模式实现计算机与plc、plc与plc的通信。自由口通信是通过用户程序控制s7-200 cpu串行通信口的操作模式。利用自由口模式可实现用户定义通信协议连接多种智能设备。s7-200 cpu自由口的控制字节描述如表2。
plc串口初始化程序如下:
ld sm0.1 file://首次扫描闭合
movb 16#09,smb30 file://初始化自由口,9600波特率,
file://8位数据,无校验
movb 16#e0,smb87 file://初始化接收控制信息,检测信
file://息结束符、空闲线信息条件
movb 16#24,smb88 file://信息字符开始
movb 16#2a,smb89 file://信息字符结束
movb +5,smw90 file://设置空闲线超时时间
movb 200,smb94 file://设置最大允许接收字符数
atch int_0,23 file://设置接收完成中断
atch int_1,9 file://设置发送完成中断
eni file://设置用户中断允许
转载请注明出处。