- 博客(42)
- 资源 (20)
- 收藏
- 关注
原创 OPC UA开源库Open62541源码编译及Client客户端Server服务器端测试[一]
pen62541 是一款开源的嵌入式系统开发手册,旨在帮助开发者快速掌握 Open62541 的开发技能。本文将从 Open62541 的概述、功能、开发环境、编程接口和应用案例五个方面进行介绍。
2024-01-19 11:11:37 3595 2
原创 OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换
OPC UA全称为“开放性生产控制和统一架构”。简单来说,它是一种用于不同设备和系统之间进行通信的技术规范。通过OPC UA,各种设备和系统可以互相交流和共享数据,实现更高效的工业自动化。
2024-01-16 15:56:15 4354 3
原创 C++上位软件通过Snap7开源库访问西门子S7-200/LOGO PLC/合信M226ES PLC V存储区的方法
在前面例程中谈到了C++ 通过Snap7开源库S7通信库跟西门子S7-1200PLC/S7-1500PLC以及合信CTMC M226ES PLC/CPU226 PLC通信的方式方法和应用例程。但是遗憾的是Snap7中根据官方资料显示只能访问PLC的 DB区、MB区、C区、T区 、I区、Q区,并没有提到有关如何访问S7-200/S7-200SMART/MT226ES/CPU226等200系列PLC的方式和方法。
2024-01-10 15:35:20 3356 2
原创 MFC Socket和合信CTMC M266ES 运动控制型PLC通信进行数据交换
MFC Socket和合信CTMC M266ES 运动控制型PLC通信进行数据交换。
2024-01-08 15:45:49 1429
原创 C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信
C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信。
2024-01-03 18:46:13 4738 1
原创 C++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法
上一篇文章中介绍了Snap7访问西门子S7-1200/S7-1500 DB块的方法,对于S7-200PLC是没有数据块访问的。S7-200PLC中Snap7只能通过访问MB块,VB块的方法进行和PLC之间的Snap7通信和数据交换。手头没有S7-200PLC故通过合信CTMC M226ES运动控制器进行测试,M226ES支持S7主站和从站协议。S7作为主站,S7-1200做为从站的通信也已经过测试。
2024-01-03 11:02:26 2525
原创 C++上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的方法
Snap7是一款用于通信的PLC库,是一种轻量级的现代PLC通信库。Snap7可在多个平台上使用,包括Windows PC,Linux,Raspberry Pi和其他和基于C++的平台。该库是完全开源的,采用了MIT协议进行发布。Snap7库是用C语言编写的,提供了对S7-200,S7-300和S7-400 PLC系列的广泛支持,还可以连接到CPU,CP和OP通信适配器。
2024-01-02 17:37:42 6920 6
原创 C++ Vector容器使用方法详解
C++ 标准库向量类是序列容器的类模板。 向量以线性排列方式存储给定类型的元素,并允许快速随机访问任何元素。 向量是需要力求保证访问性能时的首选序列容器。vector是种容器,类似数组一样,但它的size可以动态改变。vector的元素在内存中连续排列,这一点跟数组一样。这意味着我们元素的索引将非常快,而且也可以通过指针的偏移来获取vector中的元素。
2023-06-29 14:07:33 1037
原创 MsgWaitForMultipleObjects和WaitForSingleObject的应用及其注意事项
MsgWaitForMultipleObjects()Waits until one or all of the specified objects are in the signaled state, an I/O completion routine or asynchronous procedure call (APC) is queued to the thread, or the time-out interval elapses. The array of objects can include
2023-02-16 15:22:06 955 1
原创 VS2019 MFC Teechart V5.1曲线控件使用方法Teechart Activex V5.1控件绘图控件 动态绘图
VS2019通过MFC Typelib类向导添加Teechart相关类后会发生一些意想不到的错误,例如类型确实,文件缺失等错误。3. 右键 管理员身份 打开 ,此刻进入的是system32 (不是管理员打开cmd的话,用win + R的话,会提示模块已加载,但对DllRegisterServer的调用失败)。下面主要介绍动态添加曲线、改变曲线颜色、设置曲线外观、改变曲线类型、改变面板颜色、面板样式等相关的功能,导入导出功能。在添加类的头文件种增加如下语句,编译报错的都增加相关的重命名代码。
2022-12-28 09:53:48 4436 3
原创 VS2019 MFC CreateFontW 创建字体函数详细解读
CreateFont 函数创建具有指定特征的逻辑字体。 随后可将逻辑字体选为任何设备的字体。参数字体字符单元格或字符的高度(以逻辑单位为单位)。 字符高度值 (也称为 em 高度) 是字符单元格高度值减去内部前导值。 字体映射器按以下方式解释 nHeight 中指定的值。> 00< 0 对于所有高度比较,字体映射器查找不超过所请求大小的最大字体。首次使用字体时,会发生此映射。对于MM_TEXT映射模式,可以使用以下公式为具有指定点大小的字体指定高度:C++复制请求字体中字符的平
2022-12-07 19:58:57 2240
原创 VS2019 MFC 判断Windows当前操作系统是64位操作系统还是32位操作系统 Windows系统位数判断
VS2019 MFC 判断Windows当前操作系统是64位操作系统还是32位操作系统。
2022-12-07 15:05:29 670
原创 VS 2019 MFC Socket 通讯例程客户端Connect连接一对多同步通信TCP/IP通信客户端[二]
Socket进行初始化。必须包含自定义类头文件在应用程序中通过如下代码进行初始化。应用程序CPP文件源代码:最近很忙,程序写的较为匆忙,能正常运行,后期根据自己需要进行更改完善,文件发送的功能后期会陆续补上。
2022-11-09 19:28:19 2403 2
原创 VS 2019 MFC Socket 通讯例程服务器端Select一对多同步通信TCP/IP通信服务器端[一]
TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。3>原始套接字(SOCK_RAW):它提供一种能力,让我们直接跨越传输层,直接对IP层进行数据封装,通过该套接字,我们可以直接将数据封装成IP层能够认识的协议格式。1>流方套接字(SOCK_STREAM):它对应TCP协议,它提供面向连接的、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收。
2022-11-07 20:56:27 3256 2
原创 VS2019 MFC MSComm 串口通信例程基于MSComm控件
Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。 要使用ActiveX控件MSComm,程序员必须将其添加入工程。.........
2022-08-29 13:57:44 8896 6
原创 VS2019 DLL动态链接库生成多个正在运行的Windows应用之间共享的DLL [三]
本例程演示如何使用 Visual Studio IDE 通过 Microsoft C++ (MSVC) 编写自己的动态链接库 (DLL)。 然后,该演练演示如何从其他 C++ 应用中使用 DLL。 DLL(在基于 UNIX 的操作系统中也称为“共享库”)是最有用的 Windows 组件类型之一 。 可以将其用作共享代码和资源、缩小应用大小的一种方法。 DLL 甚至可使应用更易于维护和扩展。在本演练中,你将创建一个 DLL 并实现一些数学函数。 然后再创建一个控制台应用来使用 DLL 中的这些函数。 ..
2022-08-15 17:24:47 1399
原创 VS2019 MFC DLL共享动态链接库(MFC 常规库)封装例程非模态调用 MFC 常规库[二]
MFC DLL规则库,封装带有对话框的DLL
2022-08-12 15:14:07 2694
原创 VS2019 MFC DLL动态链接库(MFC 扩展库)封装例程 MFC 扩展库[一]
如上图所示为导出MFC DLL并导入到工程应用的实例,从实例看出导出的MFC DLL能正常使用,说明导出过程正确无误。C++的动态链接库封装是一个较为复杂的工程,本人也是通过应用了解到其中的冰山一角,希望能跟大家一起进一步升入学习和了解DLL的运行机制。.........
2022-08-10 16:01:48 3156
原创 VS2019 MFC Slider Control 控件继承CSliderCtrl类重绘 自绘
VS2019 MFC IP Slider Control 控件继承CSliderCtrl类重绘
2022-07-14 13:38:41 867
原创 VS2019 MFC动态创建Slider Control控件 CSliderCtrl类成员函数Create应用创建Slider Control控件[MFC动态创建控件四]
CSliderCtrl::Create创建滑块控件,并将其附加到CSliderCtrl对象。
2022-07-14 08:42:31 1271
原创 VS2019 List Control 控件自绘例程继承CListCtrl类 OnNMCustomdraw重绘
VS2019 List Control 控件自绘例程继承CListCtrl类 OnNMCustomdraw
2022-07-13 09:41:40 1379
原创 VS 2019 MFC 通过ACE引擎连接并访问Access数据库类库封装
VS 2019 MFC 通过ACE引擎连接并访问Access数据库类库封装
2022-06-11 11:11:08 1423
原创 VS2019 MFC IP Address Control 控件继承CIPAddressCtrl类重绘
VS2019 MFC IP Address Control 控件继承CIPAddressCtrl类重绘
2022-06-11 10:29:45 316
原创 VS2019 MFC动态创建EDIT控件 ,CEDIT类成员函数Create应用创建EDIT Control控件[MFC动态创建控件三]
CEdit:: Create创建 Windows 编辑控件,并将其附加到CEdit对象。复制virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);参数dwStyle指定编辑控件的样式。 将编辑样式的任意组合应用于控件。rect指定编辑控件的大小和位置。 可以是CRect对象或RECT结构。pParentWn...
2022-05-31 08:09:27 2740
原创 VS2019 MFC动态创建ComboBox ,CComboBox类成员函数Create应用创建ComboBox控件[MFC 动态创建控件二]
CComboBox::Create创建组合框并将其附加到CComboBox对象。复制virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);参数dwStyle指定组合框的样式。 将组合框样式的任意组合应用于该框。rect指向组合框的位置和大小。 可以是RECT结构或CRect对象。pParentWn...
2022-05-30 19:10:20 2043
原创 VS2019 MFC动态创建按钮和复选框,CButton类 Create成员函数应用创建复选框和按钮[MFC动态创建控件一]
MicrosoftWare微软官网说明:CButton::Create创建Windows按钮控件并将它附加到CButton对象。virtual BOOLCreate( LPCTSTRlpszCaption, DWORDdwStyle, constRECT&rect, CWnd*pParentWnd, UINTnID );参数 lpszCaption 指定按钮控件的文本。 dwStyle 指...
2022-05-30 08:21:41 1915
原创 VS2019 MFC Check-box Control 控件自绘继承Cbutton带图标
注意: 1>本例程用到了GDI绘图相关的库文件,因此要在项目.h文件内加导入GDI绘图库文件。如下图所示,本例项目解决方案.h文件为"DoublePathWayReflowerController.h"。 2>在"DoublePathWayReflowerController.h"头文件内导入GDI绘图库。#pragma once#ifndef UNLONG_PTR#define UNLONG_PTR unsigned long#incl...
2022-05-20 19:58:27 1176 1
原创 VS2019 MFC ComBOX控件自绘的方法和实例【一】
ComBox自绘效果图:继承类H头文件class CComboBoxXI : public CComboBox{ DECLARE_DYNAMIC(CComboBoxXI)public: CComboBoxXI(); virtual ~CComboBoxXI(); void SetImageList(CImageList* pImageList); CImageList* GetImageList() const; int GetItemImage(int nIndex..
2022-05-18 22:58:14 944 1
原创 VS2019 MFC 工具栏增加ComBOX控件的方法和实例【一】
.h头文件定义变量和创建函数OnCreateToolBar()1>CComboBox m_TypeSelect;2>CToolBar m_DlgMainToolBar3>CImageList m_DlgToolBarIconList;//图标列表4>afx_msg void OnCreateToolBar();void CDoublePathWayReflowerControllerDlg::OnCr...
2022-05-17 10:04:26 1250
原创 VS 2019 MFC 右键弹出菜单栏简单例程
1》新建菜单栏。2》重载virtual BOOL PreTranslateMessage(MSG* pMsg);3》加载菜单栏。4》设置菜单栏显示位置。5》右键显示菜单栏。6》分离菜单栏。7》m_ALarmMsgListBox为CListBox绑定变量。BOOL CMFCApplicationJstReflowDlg::PreTranslateMessage(MSG* pMsg) { CWnd* m_tHwnd = AfxGetApp()->GetMa..
2022-04-30 15:41:36 1281
原创 VS2019 MFC ODBC 操作SQL SERVER 数据库
【注意】VS2019取消了之前老版本的SQL数据库向导。因此需要像VS2019以前版本一样操作数据库,就要单独写一个继承于CRecordset的类来完成向数据库添加数据、删除数据、更新数据、数据排序、数据过滤等操作。【继承类CDataBaseRec.h】#pragma once#include<afxdb.h>class CDataBaseRec : public CRecordset{public: CDataBaseRec(CDatabas...
2022-04-29 09:06:36 1653
原创 VS 2019 MFC CStatusBar 自绘制继承CStatusBar 类可改变每个Panel的字体颜色和背景颜色
MFC 状态栏自绘,状态栏字体颜色可以改变,状态栏中创建进度条。
2022-04-14 11:04:26 693 3
原创 vs2019 MFC 注册表REG_DWORD,REG_SZ,REG_BINARY操作例程,包含增加注册表子项 删除注册表子项以及键值
例程完成功能测试图封装类H头文件#ifndef _H_HKEYREGQUERY#define _H_HKEYREGQUERY#include<Windows.h>#include<cstring>using namespace std;#pragma onceclass hKeyRegQuery{public: hKeyRegQuery(); virtual~hKeyRegQuery();public: void Rea...
2022-02-26 12:06:15 903
原创 VS 2019 MFC CRC16校验算法例程总结(计算法/查表法以及CRC16校验表自动生成)
工程需要,根据网上例程对CRC16校验方法进行了总结。CRC16为通讯领域常用的校验算法,其原理想必大家都很清楚。下面为相关的总结和封装类代码。 Unicode环境下要将Cstring转换为Char*字符串要对字符串的宽度进行转换,转换方法主要用到WideCharToMultiByte()函数进行转换。 函数原型:int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, ...
2022-02-21 10:06:54 3935
原创 VS 2019 MFC Process Bar Control进度条外观风格自绘重绘
本例程对Visual Studio2019自带的Process Bar Control进度条控件进行风格自绘,借鉴网上例程进行了优化,并对其进行了简单的封装。 自绘后的进度条拥有一下四种模式。#define PS_SIMPLE 1 //简单模式#define PS_COMPLEX 2//复杂模式#define PS_ELLIPSE 3 //圆角矩形模式#...
2022-02-18 15:10:54 1848 4
原创 VS 2019 MFC Static Text控件继承CStatic类重绘
Static Text控件重绘后增加字体颜色设置接口,背景颜色设置接口,字体设置,字体大小设置接口。继承类H头文件#pragma onceclass CMyStatic : public CStatic{ DECLARE_DYNAMIC(CMyStatic)public: CMyStatic(); virtual ~CMyStatic();protected: DECLARE_MESSAGE_MAP()public: CFont m_Text; bool S..
2022-02-16 19:47:55 1080
原创 VS 2019 MFC 通过WMI技术读取计算机CPU序列号,硬盘序列号,BIOS序列号,主板序列号,系统名称以及网卡MAC地址
经行了简单的封装,江功能全部封装到了类文件。封装类文件H头文件#ifndef _H_GETSYSTEMHARDWAREID#define _H_GETSYSTEMHARDWAREID#include"targetver.h"#include<wbemcli.h>#include<string.h>#include <iostream>#include <Windows.h>#include <comdef.h...
2022-02-16 19:25:29 2306
原创 VS 2019 MFC 圆形按钮指示灯继承CButton类自绘例程
例程图片继承类H文件#pragma onceclass CRoundButton : public CButton{ DECLARE_DYNAMIC(CRoundButton)public: CRoundButton(); virtual ~CRoundButton();protected: DECLARE_MESSAGE_MAP()public: virtual void DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemS...
2022-02-16 19:10:38 1627 1
原创 VS 2019 MFC Edit Control控件自绘带软键盘
实现功能:点击Edit控件后弹出软键盘,并能设置软键盘的输入最大者和最小值,软键盘采用非模态对话框创建,软键盘按钮字体颜色、背景颜色可以改变。Edit控件获得焦点和失去焦点后字体颜色和背景颜色动态可变。工程文件H文件#include"CEditJF.h"#pragma onceclass CMFCApplicationKeyBoardNumPadDlg : public CDialogEx{public: CMFCApplicationKeyBoardNumP...
2022-01-21 13:32:38 1205
西门子S7通信开源库Snap7 64位编译库文件
2024-03-01
Libmodbus-2.1.6编译完成库文件
2024-01-03
VS 2019 MFC Socket 通讯例程服务器端Select一对多同步通信TCP/IP通信服务器/客户端例程
2022-12-28
VS2019 MFC MSComm串口通信源代码
2022-08-29
VS2019 MFC DLL共享动态链接库(MFC 常规库)封装例程非模态调用例程。(里面包含MFC 扩展库何规则库两个例程)
2022-08-15
MFC 扩展DLL封装例程
2022-08-10
VS2019MFC 控件自绘大全(按钮/复选框/单选框/菜单栏/静态文本/等控件自绘继承类)
2022-05-19
VS2019 Edit Control 重绘带软件键盘输入MFCApplicationKeyBoardNumPad.rar
2022-01-22
西门子S7-1200PLC USS/V20/PID/位置控制综合程序StartAndStopMotor.rar
2022-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人