APP下载

基于VB实现PLC与上位机之间的通信

2014-12-16康微微鞠振河

关键词:实验台信号灯图标

康微微,鞠振河

(辽宁太阳能研究应用有限公司产品中心,辽宁沈阳110136)

自由化市场经济快速发展,促使工业化产品不断更新换代。计算机问世至今,其技术领域发展突飞猛进,以现有的计算机软件技术结合可编程逻辑控制器(PLC)来实现通讯功能,这不仅可以互补两者之间的不足,更能提高系统功能性。采用配有西门子S7-200可编程控制器的THSMS-C型实验台作为研究对象,利用VB6.0软件编程来提供简单易操作的指令操作界面,对采集到的大量数据进行存储处理,从而实现PLC与PC上位机之间的串行通信任务。最后模拟实验,将PC机与PLC之间的通信进行调试。

1 建立计算机与S7-200的硬件连接

本设计首先要解决的就是上位机与S7-200可编程控制器之间的连接,然而它们之间是不能直接相连的,要通过一条PC/PPI电缆才能实现计算机与西门子S7-200可编程控制器之间的连接,如图1所示。

图1 PC机与PLC的连接方式

当数据从RS-232C传到RS-485端口时,PPI电缆是发送模式。当数据从RS-485端口传送到RS-232C口时,电缆是接收模式。

2 编程软件中设置通信接口参数

在上位计算机上启动STEP7-Micro/Win V4.0编程软件,选择菜单命令“检视”—“元件”—“设置PG/PC接口”,打开“设置PG/PC接口”对话框,在"接口参数指定"列表中选择通信接口协议,如果是PPI多主站电缆,选择“PC/PPI cable(PPI)”。然后选择“Properties”钮,将出现接口属性对话框,检查有关属性,确保其正确。PPI标签中,“Transmission Rate”的设置必须与PC/PPI电缆上的设置相同(9.6 kbps或19.2 kbps)如图2所示。

3 西门子S7-200可编程控制器与上位机的在线联系

通过通信协议及通信参数进行设定来建立上位机与西门子S7-200 CPU的在线联系。在STEP7-Micro/Win32下,单击通信图标,则会出现一个通信通道对话框,显示是否连接了CPU主机。双击通信对话框中的刷新图标,STEP7-Micro/Win32将检查所有连接的S7-200 CPU主站,并建立一个CPU的图标,双击CPU图标,在通信对话框中显示所选的通信参数如图3所示。

图2 PC/PPI电缆的PPI参数设置

图3 通信参数

4 VB与PLC的串口通信

4.1 VB串口通信程序的设计

Visual Basic在开发可视化监控系统方面有独特的优势,它本身提供的串行端口控件MSComm就是为了应用程序提供串行通信而设计的,在应用时只需要设置、监视MSComm的控件属性和事件即可完成对串行口的初始化和数据输入工作。该通信程序的设计程序流程图如图4所示。

4.2 西门子PLC的通信程序设计

采用的S7-200可编程控制器支持点对点接口PPI、多点接口MPI和PROFIBUS等多种通信协议,通过利用不同用户自定义自由口模式来控制S7-200 CPU通讯口的操作形式。通讯全过程由用户自行控制,在自由口模式里用户自定义完成不同需求下多种职能通讯协议。用户通过操作界面来进行指令的中断、发送、接收及更改,这极大改善了通讯系统的灵活性。

采用自由模式来让S7-200 PLC与上位机实现通信。流程图如图5所示。

图4 程序流程

图5 PLC通信程序流程

PC与S7-200可编程控制器采用自由协议来实现通信,主站选取PC,PLC作为从站,PC实现对PLC寄存器对写操作。PC通过COM口发送指令到PLC的PORTO口,PLC通过RCV接收指令,指令译码完成后实现指令操作任务,以XMT指令形式回到执行指令数据。要实现通信首先要设置通信参数让PLC与上位机的参数一致,所以要对其内部的特殊字节存储器SMB30进行设置,把十进制数9送给SMB30则代表波特率9 600kb/s、无奇偶校验、8位数据位、1位停止位。对自由口初始化之后,要初始化RCV信息控制,将16进制数B0送给SMB87则给出了RCV允许的检测信息结束符,检测空闲线空闲条件。设定接收到的结束字符为"0A"(回车),SMB94设定值为100,给出了接收到的最大字符为100个,然后连接一个接收完成中断及发送完成中断,这样就完成了对自由端口的通信设置。

实现该功能的具体程序如下:

//对PLC进行自由端口的初始化

LD SM0.1

MOVB 16#09,SMB30//自由通信

MOVB 16#B0,SMB87//RCV 指令

MOVB 16#0A,SMB89//对接收到的结束字符进行设定

MOVB 100,VB100//最多接收100个字符

MOVW+5,SMW90//设定空闲 5ms

MOVB 100,SMB94

MOVB 100,SMB94

ATCH INT0,23//接收完成事件连接中断

ATCH INT2,9//发送完成事件连接中断

ENI

RCV VB100,0

进行初始化之后,便完成了PLC与上位机之间的参数设定,之后便可进行通信了。但是要想将接收到的数据应用到PLC控制的模拟实验上,以及将反馈信息发送回上位机,就要设置接收完成中断与发送完成中断。

实现该功能的具体程序如下:

//接收完成中断

LDB=SMB86,16#20//显示接收到结束字符

MOVB 10,SMB34//设定一个10ms的时机中断

ATCH INT1,10

CRETI

NOT

RCV VB100,0

//发送完成中断

LD SM0.0

LPS

DTCH 10//断开定时器中断

CALL SBR0

AB=VB101,1//等于1将控制指令发给上位机

XMT VB100,0

LPP

XMT VB200,0//端口0返回用户信息

通过上述程序与VB的通信程序相连,可以很好地实现二者的通信,PLC将上位机发送过来的数据接收到缓冲器中,经过处理把反馈信息发送给上位机并在接收回显框中显示出来。

5 VB与PLC的通信调试与实验

根据上述程序的通讯设计,利用THSMS-C型网络型可编程控制器实验台进行VB与PLC控制实验的调试。将模拟信号灯控制实验面板与S7-200可编程控制器连接起来。检查上位机与S7-200可编程控制器之间的串口连线、挂箱与S7-200可编程控制器之间的连线。检查无误后打开电源开关。

打开STEP7-Micro/Win V4.0编程软件将程序下载到S7-200可编程控制器中,之后运行VB程序,然后选择"管理员用户"模式进入到"监控选择页面"先对通讯进行测试,在输入框中写入"回车符",点击 "测试发送",按"开始接收"按钮,如果在接收回显中显示数据8个"X"则证明通讯正常,否则没有连接通信,如图6所示。

图6 通信测试

确定通讯成功后,点击控制实验程序中的“模拟信号灯”选项,进入到该实验的监控界面,在监控界面上点击“启动”按钮,此时模拟信号灯程序会进行运动,并且在监控界面上显示当前运行的状态。PLC会根据实验中模拟信号灯的亮灭情况将反馈信息发送回来,即灯亮为“H”灯灭为“X”。同时上位机会根据反馈回来的信息进行核对,如果为“H”则监控界面上与之相对应的模拟信号灯指示图标会发出相应的颜色,如果为"X"则相应位置的指示图标不显示。如图7所示为模拟信号灯实验由南北方向通行向东西方向通行转换,其中黄灯亮为向东西方向通行的过渡。黄灯熄灭后,控制南北方向(水平)红灯亮,控制东西方向(垂直)的绿灯亮,代表东西通行的甲灯被点亮。在图8中为监控界面反映出当前实验台上的情况。图7和图8为过渡状态下实验台模拟信号转换与监控界面显示的比较。

为了进一步观察模拟信号灯指令的同步运行,在监控界面的基础上又设置了“指示灯监控指令”界面如图9所示,设定字符“H”、“X”分别为监控界面指示图标的“执行”与“停止”指令字符,所以当实验台上显示模拟信号灯运行状态时,PLC会根据模拟信号灯的亮灭情况,把当前亮的指示灯的信息发送回来,即字符“H”,反之,不亮的指示灯会发送回“X”。

图7 实验台模拟信号灯状态

图8 监控界面显示

图9 实验台模拟信号灯指示灯指令监控界面

PLC把亮的模拟信号灯以“H”指令发送给上位机,其他不亮的模拟信号指示灯发送“X”指令。根据上位机的设置如果接收到字符“H”则与实验台上相应的代表指令变换的图标显示颜色,反之不显示。图10是接收回显PLC根据实验台当前模拟信号灯变换的情况而发送回来的数据指令的界面,二者相比较显示指令的一致性,即“HHHXXXXX”。

图10 接收到由PLC发送回来的状态指令

6 结语

在应用VB开发的上位机与PLC之间通信程序的基础上,完成了上位机与PLC之间的通信并把此通信程序应用到模拟信号灯实验上,实现了对该实验的监控,达到了彼此同步的效果。

对于中小型电气控制系统的监督控制与数据采集可通过可编程逻辑控制器来降低其运行成本,为找到实现PLC与PC机之间的经济实用的通讯方案具有重要意义。设计采用VB开发上位机与PLC之间的通信,可以降低开发的成本,提高企业的工作效率,为企业带来更多的效益。随着PLC与计算机在工业自动化中的应用越来越广泛,PLC与计算机之间的通讯也越来越频繁,二者之间的实时通信研究具有重要的现实意义。

[1]廖常初.PLC编程及应用[M].北京:机械工业出版社,2007.

[2]陈忠华.可编程控制器与工业自动化系统[M].北京:机械工业出版社,2006.

[3]王 栋.Visual Basic程序设计实用教程[M].北京:清华大学出版社,2006.

[4]李双科,吴记群.VB下利用MSComm实现计算机与 PLC的串行通信[J].电气自动化,2006,28(3):43-45.

[5]甄任贺.用VB6.0实现PC机与PLC的串行通信[J].机电工程,2004,21(5):17-19.

[6]王骁勇,盛志冲.上位计算机与PLC串行通信在生产线监控中的应用[J].机电工程,2006,32(3):32-34.

[7]敬 伟,涂 劲.用VB6.0实现西门子PLC与PC机的串行通信[J].微机发展,2003,25(2):28-29.

猜你喜欢

实验台信号灯图标
基于CDIO-E教学模式自制实验台的研究
Android手机上那些好看的第三方图标包
交通信号灯
Android手机上那些好看的第三方图标包
信号灯为什么选这三个颜色?
开放式机电液一体化综合实验台设计
中国风图标设计
模糊PID在离合器综合性能实验台中的应用
安装在路面的交通信号灯
有意思的厕所图标