VC++创建上位机接收界面
- 格式:doc
- 大小:24.50 KB
- 文档页数:3
wincc上位机操作手册
WinCC上位机操作手册主要包括以下步骤:
1. 打开WinCC软件,并打开相应的项目。
2. 检查通讯通道中的逻辑设备名称与Set PG/PC指定的名称是否一致。
如果不一致,需要手动修改逻辑设备名称。
3. 确保客户端的Windows用户拥有Administrator,SIMATIC HMI和SQLServer2005MSSQLUSER三个用户组。
同时,如果WinCC服务器上不存在此客户端的Windows用户,必须在WinCC服务器上创建此Windows用户。
4. 使用项目复制器复制WinCC项目,相应的计算机名称、冗余的主从设置会自动更改。
5. 上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。
下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。
6. 根据实际需要,可以在上位机屏幕上显示各种信号变化(液压,水位,温度等)。
7. 在操作过程中,如果遇到问题或故障,可以查看WinCC软件的帮助文档或联系技术支持寻求帮助。
以上就是WinCC上位机操作手册的基本步骤和注意事项,供您参考,建议查阅具体操作手册获取更全面准确的信息。
利用VC++6.0实现上位机与PLC的串行通信
惠鸿忠
【期刊名称】《微计算机信息》
【年(卷),期】2005(021)12S
【摘要】介绍了西门子S7-200系列PLC的自由口通信模式及在Windows环境
下应用VC++6.0实现PC机与PLC串行通信的编程方法,开发了玻璃器皿冲
压机上位机监控系统。
实际运行证明,该监控系统界面友好,实时性强,运行稳定。
【总页数】3页(P47-49)
【作者】惠鸿忠
【作者单位】聊城大学汽车与交通工程学院,山东聊城252000
【正文语种】中文
【中图分类】TP277
【相关文献】
1.利用上位机与PLC之间的串行通信实现现场数据的采集 [J], 黄龙
2.利用VC++6.0实现上位机与PLC的串行通信 [J], 惠鸿忠
3.利用VC++6.0实现上位机与PLC的串行通信 [J], 惠鸿忠
4.利用VC++6.0实现上位机与PLC的串行通信 [J], 惠鸿忠
5.利用VC++
6.0实现PC机与PLC的串行通信 [J], 赵健英
因版权原因,仅展示原文概要,查看原文内容请购买。
MFC上位机软件设计MFC(Microsoft Foundation Class)是微软公司开发的一套用于Windows操作系统的应用程序框架。
它提供了一系列用于快速开发Windows应用程序的类和函数库。
在开发MFC上位机软件时,需要考虑软件的设计,以确保软件的可靠性和易用性。
首先,需要进行软件需求分析。
这是软件开发过程中的首要步骤,可以通过与客户、用户的沟通和交流来收集和明确软件的需求。
需求分析包括对软件功能、性能、界面、用户角色等方面的明确。
其次,在设计阶段,需要确定软件的架构和模块划分。
MFC提供了一套基于窗口的界面设计,开发者可以根据软件的需求来设计主窗口和各个子窗口。
在设计上位机软件时,通常会包含与下位机通信的功能,如串口通信、网络通信等。
这就需要设计相应的通信模块。
在MFC上位机软件设计中,还需要考虑软件的界面设计。
界面设计应该具有良好的用户体验,界面布局合理,操作简单直观,符合用户的操作习惯。
可以通过使用MFC提供的控件和对话框进行界面设计,包括按钮、文本框、列表框、滚动条等。
另外,需要考虑软件的数据管理和数据处理。
上位机软件通常需要对从下位机接收到的数据进行处理和分析,可以使用MFC提供的数据库操作和数据结构来管理和处理数据。
同时,也需要设计相应的业务逻辑和算法来满足软件的功能需求。
在软件设计中,还需要进行系统测试和调试。
测试是确保软件质量的重要环节,可以通过单元测试、集成测试、系统测试等多种方式来进行测试。
调试是解决软件问题和bug的过程,可以利用MFC提供的调试工具和技术来进行调试。
此外,需要注意软件的安全性和稳定性。
对于上位机软件来说,安全性是重要的考虑因素之一、可以通过加密通信、用户权限管理等手段来增加软件的安全性。
稳定性是软件的基础要求,需要在设计和开发过程中尽量避免内存泄漏、空指针引用等问题,以确保软件的稳定性。
最后,在MFC上位机软件设计中,需要考虑软件的扩展性和可维护性。
写上位机的方法
上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。
下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。
上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。
下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。
上下位机都需要编程,都有专门的开发系统。
编写上位机程序通常涉及以下步骤:
1. 确定需求:明确上位机程序需要实现的功能和与下位机的通信协议。
2. 选择开发环境:选择适合的编程语言和开发环境,如Visual Studio、Qt、Python 等。
3. 设计用户界面:使用选定的开发环境创建上位机程序的用户界面,包括按钮、文本框、图表等。
4. 建立通信连接:使用适当的通信协议和接口与下位机进行连接,如串口、以太网、USB 等。
5. 数据处理和显示:接收下位机发送的数据,并进行处理和显示,例如将温度数据显示在图表上。
6. 错误处理:编写错误处理代码,以应对通信错误或数据异常情况。
7. 测试和调试:进行全面的测试,确保上位机程序正常工作,与下位机的通信稳定。
8. 发布和维护:完成开发后,将程序发布给用户,并根据需要进行维护和更新。
VC版07规约国网多功能表上位机软件操作说明把文件夹解压后,即可运行“07规约上位机-VC版”文件夹下的文件“gw2007test.exe”进入软件主界面。
抄表1.点击左上角菜单栏“配置”项,选择正确串口、波特率、偶校验E、数据位8、停止位1、密码权限、密码,点击“确认退出”。
在右上角“表地址”栏输入正确的表地址,一般为局编号的带数字部分。
(AAAAAAAAAAAA为广播地址可以作为万能表号使用)2.点击左上角菜单栏“抄读”项,进入抄读窗口界面,在左侧定制抄表方案(在需要抄读数据前打√),在展开的图中可以看到各个大类的内容,选择自己的需要部分打√,全部选择完毕后在方案中输入一个名称,点击“方案保存”,然后“方案读取”。
3.点击菜单栏“单抄”按钮,即可将方案内容数据全部读出。
(如需保存可点击右上方“数据保存”即可)。
4.点击“抄读数据保存”后,抄表完毕软件会自动把数据保存在该软件目录下的.MDB 文件中。
打开该数据库可以导出数据为EXCEL实现打印。
5.抄读“负荷曲线”:点击菜单栏“曲线”按钮,按需要选择不同方式读取数据,点击“曲线数据保存”即可完成保存,可以导出为EXCEL格式实现打印。
一、设表参数设置正确输入表的实际地址(地址不支持AAAAAAAAAAAA)。
在菜单栏点击“设置”按钮,根据规约要求正确设置需要更改的项,在“数据域”修改数据后,选取“设置”表示该项目需要设置,在“方案名”中输入方案名称,点击“方案保存”后“方案读取”,点击菜单栏“单设”后,观察栏目后设置“结果”。
设置成功的在该项目后面结果栏出现“OK”,否则不成功则出现“ERROR”。
命令类点击菜单栏“命令类”可以进行以下操作1.“读通信地址”可以读取表地址2.“写通信地址”输入新的表地址,按“发送”即可对表地址进行更改3“广播校时”每日一次,5分钟以内4“冻结命令”根据需要进行冻结5.“更改通信速度”选择好合适的波特率,点击“发送”即可6.“修改密码”输入原始密码和权限、及需要修改的新密码和权限,点击“发送”即可。
上位机可方便地实现与单片机之间进行信息传递交互,能够更加容易对机械手臂进行控制,实现操作可视化,更加直观,保存重要数据等功能。
我们利用Visual Basic 6.0(以下简称VB)来编制上位机,VB是一种功能强大、简单易学的程序设计语言。
它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能。
它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。
本实验涉及控制六路舵机,所以需要编制上位机实现一次向下位机传输含有六个数据的数组,同时接受来自下位机的数组,并显示。
整个过程可分为如下几个过程:一:VB是面向对象的语言,首先需要绘制程序界面该上位机大致分为左边的功能部分与右边的可视化调节部分。
功能部分有端口选择,用以选择合适的端口进行串口通信,波特率选择,打开与关闭端口,动作设置等。
为了便于布局,应用frame控件建立区域,再将控件拖到frame区域中,对于功能相同的控件来说,建立控件组的方式会使编程避免重复繁琐,例如HScrollbar控件,先向frame区域内拖入一个HScrollbar控件,再复制,粘贴到frame 区域内部,则提示是否建立控件组,点击确定即可。
这样便为后续编程带来很大的方便。
调节部分运用Hscrollbar控件来粗略调节度数,设定按钮与文本框配合来精确调节输出度数。
用右列文本框实时读取舵机当前角度。
用optionbutton控件来选择hscrollbar的步进精度,这里分为0.1度与1度两个不同的选项。
由于一组optionbutton中在程序运行中只能有一个处于选中状态,根据本程序要求,每一横列的两个optionbutton为一组,这样就需要frame控件,在同一个frame区域里的optionbutton默认为一组。
这样就可以如上图所示的状态显示,否则真能选中其中的一个。
C语言实现图形界面C语言实现图形界面对于程序员来说是一项非常重要且有挑战性的任务。
随着计算机技术的不断发展,图形界面在软件开发中越来越重要,因此掌握如何使用C语言来实现图形界面也成为了程序员们必备的技能之一。
一、图形界面的基本概念在介绍C语言实现图形界面的具体方法之前,首先需要了解图形界面的基本概念。
图形界面是指通过图形元素(如按钮、文本框、菜单等)在屏幕上进行交互的界面,用户可以通过鼠标、键盘等设备与计算机进行交互操作。
二、使用C语言实现图形界面的方法1. 使用第三方库为了方便使用C语言实现图形界面,可以选择使用第三方库,如GTK、Qt等。
这些库提供了丰富的图形界面组件和接口,方便开发人员快速构建图形界面应用程序。
2. 使用Windows API对于Windows平台下的软件开发,可以使用Windows API来实现图形界面。
Windows API提供了一系列函数和数据类型,可以方便地创建窗口、按钮、菜单等图形界面组件。
3. 使用OpenGL如果需要在图形界面中展示3D图形,可以使用OpenGL库来实现。
OpenGL是一种跨平台的图形库,可以实现高性能的3D图形渲染。
三、示例代码下面是一个简单的示例代码,演示了如何使用C语言和GTK库实现一个简单的图形界面:```c#include <gtk/gtk.h>int main(int argc, char *argv[]){GtkWidget *window;gtk_init(&argc, &argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);g_signal_connect(window, "destroy",G_CALLBACK(gtk_main_quit), NULL);gtk_widget_show(window);gtk_main();return 0;}```四、总结通过以上介绍,我们了解了使用C语言实现图形界面的基本方法和示例代码。
1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest;2.在项目中插入MSComm控件选择Project菜单下Add To Project子菜单中的Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。
选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。
(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安装VC6时没有把ActiveX 一项选上,重新安装VC6,选上ActiveX就可以了),这时在ClassView视窗中就可以看到CMSComm类了,(注意:此类在ClassWizard中看不到,重构clw文件也一样),并且在控件工具栏Controls中出现了电话图标(如图1所示),现在要做的是用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。
3.利用ClassWizard定义CMSComm类控制对象打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1添加控制变量:m_ctrlComm,这时你可以看一看,在对话框头文件中自动加入了//{{AFX_INCLUDES() #i nclude "mscomm.h"//}}AFX_INCLUDES 。
4.在对话框中添加控件向主对话框中添加两个编辑框,一个用于接收显示数据ID为IDC_EDIT_RXDATA,另一个用于输入发送数据,ID为IDC_EDIT_TXDATA,再添加一个按钮,功能是按一次就把发送编辑框中的内容发送一次,将其ID设为IDC_BUTTON_MANUALSEND。
C#上位机开发(⼀)——了解上位机
在单⽚机项⽬开发中,上位机也是⼀个很重要的部分,主要⽤于数据显⽰(波形、温度等)、⽤户控制(LED,继电器等),下位机(单⽚机)与上位机之间要进⾏数据通信的两种⽅式都是基于串⼝的:
USB转串⼝ —— 上位机和下位机通过USB转串⼝连接线直接相连进⾏数据交互;
串⼝转WIFI(ESP8266) —— 上位机和下位机基于TCP/IP协议通过WIFI传输数据;
串⼝转蓝⽛(HC-06)—— 不多⽤,暂不介绍;
上位机软软件开发主要包括以下两种:
1、Windows上位机(EXE可执⾏程序)
在Windows上,最早⽤VB语⾔开发,后来由于C++的发展,采⽤MFC开发,近⼏年,微软发布了基于.NET框架的⾯向对象语⾔
C#,更加稳定安全,再配合微软强⼤的VS进⾏开发,效率奇⾼;
另外,如果想要在Linux上跨平台运⾏,可以选⽤Qt;如果想要更加丰富好看的数据显⽰界⾯,可以选⽤Labview开发;
2、Android上位机(APP)
在Android操作系统上,主要采⽤Java语⾔,使⽤WIFI或者蓝⽛基于TCP/IP协议传输数据,利⽤Android Studio开发;
在此,我们主要介绍如何通过VS + C#开发电脑上位机,其它上位机的开发暂且不论。
注:VS下载与安装参考这篇较详细的博客。
VC++串口上位机简单例程(源码及详细步骤)VC++编写简单串口上位机程序串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少,VB、C#、LABVIEW等等,我会的语言很少,C语言用得比较多,但是还没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相当蹩脚的C++写出了一个简单的串口上位机程序,分享一下,体验一下单片机和PC通信的乐趣。
编译环境:VC++6.0操作系统:VMWare虚拟出来的Windows XP程序实现功能:1、PC初始化COM1口,使用n81方式,波特率57600与单片机通信。
PC的COM口编号可以通过如下方式修改:当然也可以通过上位机软件编写,通过按钮来选择COM端口号,但是此次仅仅是简单的例程,就没有弄那么复杂了。
COM1口可用的话,会提示串口初始化完毕。
否则会提示串口已经打开Port already open,表示串口已经打开,被占用了。
2、点击开始转换,串口会向单片机发送0xaa,单片机串口中断接收到0xaa后启动ADC 转换一次,并把转换结果ADCL、ADCH共两个字节的结果发送至PC,PC进行数值转换后在窗口里显示。
(见文章末尾图)3、为防止串口被一只占用,点击关闭串口可以关闭COM1,供其它程序使用,点击后按钮变为打开串口,点击可重新打开COM1。
程序的编写:1、打开VC++6.0建立基于对话框的MFC应用程序Test,2、在项目中插入MSComm控件:工程->增加到工程->Components and Controls->双击Registered ActiveX Controls->选择Microsoft Communications Control, version 6.0->Insert,按默认值添加,你会发现多了个电话图标,这是增加后串口通信控件。
编程任务:
编写一个基于对话框的应用程序,用MSComm控件控制串口,能在界面上接收从该
串口发来的数据,并且能发送数据。
1.建立应用程序工程SCommTest
打开VISUAL C++6.0,建立一个基于对话框的MFC应用程序:SCommTest。
然后在主对话框中添加控件,最后效果如图1.5.1所示。
其中的电话状图标是MSComm控件,参照第2步的方法将其添加到对话框中。
控件及其属性设置情况
控件控件ID Caption 变量及变量类型
静态文本IDC_STA TIC 接收电压显示
静态文本IDC_STA TIC V
编辑框IDC_EDIT_RXDA TA m_strEditRXData V alue CString MSComm控件IDC_MSCOMM1 m_ctrlComrn control
2.在当前工程中添加MSComm控件
单击菜单Add To Project-> Components and Controls…,就打开了如图1.5.2所示的添
加组(控)件对话框。
再在其中双击“Reg istered ActiveX Controls"项(这时要稍等一会,这个过程较慢),
就出现了如图1.5.3所示的控件选择(Component and Controls Gallery)对话框。
在该对话框中选择“Microsoft Communications Control,versio n 6.0”控件。
再单击“Insert”按钮,提示“Insert this component?”,确认后,可以看到加入CMSComm 类的确认(Confirm Class)对话框,提示加入到当前工程中的CMSComm类头文件为MSComm.h,实现文件为MSXommcpp。
点击"OK"按钮,(Confirm Class)对话框关闭。
再点击“Close”关闭(Component and Controls Gallery)对话框。
在VC6.0集成环境中,当前工程的Class V iew中就出现了CMSComm类。
同时,在对话框资源控件中出现了一个电话机形状的精简,这就是CMSComm控件。
要在对话框中应用该控件,还需要讲这个控件用鼠标拖入对话框中,这个对话框就成了MSComm控件的“宿主”。
3.初始化串口:设置MSComm控件的属性,
打开ClassWizard->Member V ariables页,如图 1.5.6所示,选中控件IDC_MSCOMM1,再点击“Add V arialbe..,”按钮,在CSCommTestDlg类中为控件IDC_MSCOMM1添加CMSComm控制变量m_ctrlComm。
下面,在CSComrnTestDlg::OnlnitDialog0函数中写入对串口的初始化语句,串口初始化语句由IDC_MSCOMM1的CMSComm控制变量m_ctrlComm来设置串口控件属性。
代码如下:
// TODO: Add extra initialization here
m_ctrlComm.SetCommPort(1); //选择COM1
//波特率9600,无校验,8个数据位,1个停止位
m_ctrlComm.SetInputMode(1); //输入方式为二进制方式
m_ctrlComm.SetInBufferSize(1024); //设置输入缓冲区大小
m_ctrlComm.SetOutBufferSize(512); //设置输出缓冲区大小
//波特率9600,无校验,8个数据位,1个停止位
m_ctrlComm.SetSettings("9600,n,8,1");
if(!m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);//打开串口
m_ctrlComm.SetRThreshold(1);
//参数1表示每当串口接收缓冲区中有多于
//或等于1个字符时将引发一个接收数据的OnComm事件
m_ctrlComm.SetInputLen(0); //设置当前接收区数据长度为0
m_ctrlComm.GetInput(); //先预读缓冲区以清除残留数据
return TRUE; // return TRUE unless you set the focus to a control
4.添加串口事件消息处理函数OnComm()
MSComm控件一般用事件驱动方式从串口接收数据,也就是消息处理,当串口有事
件发生时,程序调用消息函数来处理数据。
打开ClassWizard->Member V ariables页,如图1.5.7所示,打开ClassWizard->Message Maps,在Class Name中选择类CSCommTestDlg.再在Object Ids中选择IDC_MSCOMM1,然后在Message中双击消息OnComm(或单击“Add Function”按钮),在弹出的对话框中将函数名改为OnComm(好记而已),单击OK,就加入了串口事件的消息处理函数。
下面编写函数OnComm()中的代码,主要任务是从串口接收数据并显示在接收编辑框中。
void CVtestDlg::OnComm()
{
// TODO: Add your control notification handler code here
m_strEditRXData=" ";
V ARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //V ARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strEditRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容}。