您现在的位置是:首页 > PLC技术 > PLC技术
用Visual C++实现CPM2系列PLC与计算机的串行通信
来源:艾特贸易2017-06-05
简介本文艾特贸易网利用可视化语言 Visual C++ 和 MScomm 控件,实现上位机 PC 与下位机 CPM2 系列 PLC 之间的通信。 Visual C++ 在图形处理和底层通信等方面具有较强的功能,用它来实现底层的通
本文艾特贸易网利用可视化语言Visual C++和MScomm控件,实现上位机PC与下位机CPM2系列PLC之间的通信。Visual C++在图形处理和底层通信等方面具有较强的功能,用它来实现底层的通信控制有着更快捷的速度,而且编程也方便。
用VC++编写API函数通信程序有4个要点,即串口建立及打开、发送数据、接收数据及关闭串口。下面简要介绍上位机的程序设计。
1.功能要求
CPM2系列PLC与计算机的串行通信要求:每隔500ms从PLC的DM 1000开始读取4个状态字的内容,送到上位机的数据存储区StatusDats[ 80]。每隔500ms读取一次,可以设置一个时间间隔为500ms的定时器来实现。
2.设计步骤
假设PLC的节点号为00,则上位机读取数据的命令格式为:
下位机接收到该命令后,将做出相应的响应,响应帧的格式为:
其中:
·V2、V1-上位机的校验码。
·Vr2、Vr1-下位机的校验码,要编写一个帧数据校验码函数。
·D7~D0-上位机要读取的4个字。
在Visual C++6.0中建立一个工程,加入串口通信控件,进行编程。步骤如下:
[1]建立工程。启动VC++6.0,建立一个基于Dialog的应用程序框架,工程名为PL-
CComm,并支持ActiveX控件功能。
[2]加入串口通信控件。选择“Project”菜单选项,单击“Components and Controls”命令,在
“Registered ActiveX Controls“中选取“Microsoft Communication Control,version5.0”控件,
插入工程,生成CMSComm类。在对话框中插入该控件,并同时插入按钮CommBT。
[3]在CPLCCommDLG类中加入公共成员变量和公共成员函数说明。
[4]在onInitDialog()函数中加入串口初始化代码。
[5]给通信按钮IDC-COMMBT添加BNCLICKED消息处理函数onCommbt()。
[6]编写帧数据校验码函数。
[7]给通信控件IDC-MSCOMM添加OnComm消息处理函数onComm()。
[8]添加WM-TIMER消息的处理函数onTimer( UINT nIDEvent)。
VC通信程序可处理成多线程的,即在前台处理其他工作的同时,另建立一个线程,在后台处理通信,这既提高了工作速度,又可做到程序的其他任务处理与通信两不误。
点击排行
