基于mscomm的plc与上位机通信系统的设计与开发

基于mscomm的plc与上位机通信系统的设计与开发

ID:23659462

大小:80.89 KB

页数:7页

时间:2018-11-09

基于mscomm的plc与上位机通信系统的设计与开发_第1页
基于mscomm的plc与上位机通信系统的设计与开发_第2页
基于mscomm的plc与上位机通信系统的设计与开发_第3页
基于mscomm的plc与上位机通信系统的设计与开发_第4页
基于mscomm的plc与上位机通信系统的设计与开发_第5页
资源描述:

《基于mscomm的plc与上位机通信系统的设计与开发》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于MSComm的PLC与上位机通信系统的设计与开发摘要西门子PLC常被用于工业现场的控制,而对其的监控往往是由上位机来完成的,因此PLC与上位机之间的数据通信问题就变得极其重要。本文介绍了利用VisualC++中的MSComm控件设计上位机通信界面,完成与西门子系列PLC的数据通信。实验证明,利用这种技术克服了以往通信系统受通固定信协议与组态软件的限制,性能可靠,使用灵活,适合于小型控制系统。【关键词】西门子PLC上位机自由端口模式MSCcxnm控件通信系统随着工业技术的发可编程逻辑控制器(PLC)得到越来越广泛

2、的应用。西门子S7-200系列PLC是西门子家族中重要的一员,其体积小,软硬件功能强大,可靠性高,而且具有强大的通信能力。设计采用自由通信口方式,由第三方开发软件VisualC++自行设计通信画面,实现计算机与PLC的通信。1系统实现方案1.1串口通信方案MSComm控件是Microsoft公司提供专门用于串行通信编程的ActiveX控件。本次设计使用MSComm控件进行开发。基于MSComm的PLC与上位机通信系统的设计与开发摘要西门子PLC常被用于工业现场的控制,而对其的监控往往是由上位机来完成的,因此PLC与

3、上位机之间的数据通信问题就变得极其重要。本文介绍了利用VisualC++中的MSComm控件设计上位机通信界面,完成与西门子系列PLC的数据通信。实验证明,利用这种技术克服了以往通信系统受通固定信协议与组态软件的限制,性能可靠,使用灵活,适合于小型控制系统。【关键词】西门子PLC上位机自由端口模式MSCcxnm控件通信系统随着工业技术的发可编程逻辑控制器(PLC)得到越来越广泛的应用。西门子S7-200系列PLC是西门子家族中重要的一员,其体积小,软硬件功能强大,可靠性高,而且具有强大的通信能力。设计采用自由通信口

4、方式,由第三方开发软件VisualC++自行设计通信画面,实现计算机与PLC的通信。1系统实现方案1.1串口通信方案MSComm控件是Microsoft公司提供专门用于串行通信编程的ActiveX控件。本次设计使用MSComm控件进行开发。在通信过程中,只需设置、监视MSComm控件的属性和事件即可完成对串行口的初始化和数据输入输出工作。1.2系统电路设计本次设计所使用的PLC为直流电源系统的CPU226PLC,其内置的电源模块只能给PLC的输入进行供电,其输出需要额外配置±24V电源,因此必须增加一个开关电源模块

5、,给PLC的输出供电。由于S7-200系列PLC的通信口是RS-485通信接口,而计算机是RS-232通信接口,所以计算机与PLC通信时需要进行RS-232/RS-485电平转换,西门子PC/PPI电缆可以完成这一转换。本设计的电路连接图如图1。1.3系统功能实现本系统可实现的功能有两部分:上位机发送数据和上位机接收数据。其中上位机发送数据是由上位机通过对话框发送一个字符数据,在PLC的输出QBO上显示输入数据的个数,输出QB1上显示输入数据的ASCII码;上位机接收数据是给PLC的IB0—个输入状态,在上位机主界

6、面的接收区即可显示其输入状态。2上位机端程序设计2.1界面设计使用控件进行串口程序设计时,首先需要加载控件。将MSComm控件加载到VisualC++集成开发环境中。加载成功后,建立一个基于MFC单文档对话框的工程,即可进行通信程序的设计。通信界面包括两个部分:主界面和设置界面。主界面是主要的操作界面,设置串口参数、打开串口、关闭串口等操作都在主界面中完成。通信界面如图2所示。界面设计之后,还需要使用VisualC++类向导自动创建静态文本、按钮和编辑框的关联成员变量,这样就可以直接通过成员变量来访问控件内容,例如

7、在控件中显示内容、读取内容或者发送内容等。2.2程序设计下面是打开串口程序的一部分,在这里进行部分初始化操作fbyComm.SetlnBufferSize(1024);//指定接收缓冲区大小fbyComm.SetlnBufferCount(0);//清空接收缓冲区fbyComm.SetInputMode(1);//设置数据获取方式fbyComm.SetInputLen(0);//设置每次读取长度为全部读取fbyComm.SetRThreshold(1);//设置接收OnComm事件门限值fbyComm.SetPor

8、tOpen(1);//打开串口2.2.1接收数据处理程序在MSComm控件的OnComm事件中接收数据。具体代码如下所示:voidCReceiveMSCommDlg::OnOnCommMscomm(){VARIANTvariantfbyp;COleSafeArraysafearray_fbyp;LONGlen,fbyk;BYTEfbydata[2048];C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。