Qt5调用Snap7

article/2025/7/16 19:19:52

Snap7是一个与西门子PLC通信的开源库, 在网上下载了一个例子, 研究了一天终于通信成功了, 在此记录一下

项目文件

win32:LIBS += C:\Qt\Qt5.7.0\Tools\mingw530_32\i686-w64-mingw32\lib\libws2_32.a
win32:LIBS += C:\Qt\Qt5.7.0\Tools\mingw530_32\i686-w64-mingw32\lib\libwinmm.aINCLUDEPATH += snap7-full-1.4.2/release/Wrappers/c-cpp/ \snap7-full-1.4.2/src/lib/ \snap7-full-1.4.2/src/core/ \snap7-full-1.4.2/src/sys/SOURCES += main.cpp\mainwindow.cpp \snap7-full-1.4.2/release/Wrappers/c-cpp/snap7.cpp \snap7-full-1.4.2/src/core/s7_client.cpp \snap7-full-1.4.2/src/core/s7_isotcp.cpp \snap7-full-1.4.2/src/core/s7_micro_client.cpp \snap7-full-1.4.2/src/core/s7_partner.cpp \snap7-full-1.4.2/src/core/s7_peer.cpp \snap7-full-1.4.2/src/core/s7_server.cpp \snap7-full-1.4.2/src/core/s7_text.cpp \snap7-full-1.4.2/src/lib/snap7_libmain.cpp \snap7-full-1.4.2/src/sys/snap_msgsock.cpp \snap7-full-1.4.2/src/sys/snap_sysutils.cpp \snap7-full-1.4.2/src/sys/snap_tcpsrvr.cpp \snap7-full-1.4.2/src/sys/snap_threads.cppHEADERS  += mainwindow.h \snap7-full-1.4.2/release/Wrappers/c-cpp/snap7.h \snap7-full-1.4.2/src/core/s7_client.h \snap7-full-1.4.2/src/core/s7_firmware.h \snap7-full-1.4.2/src/core/s7_isotcp.h \snap7-full-1.4.2/src/core/s7_micro_client.h \snap7-full-1.4.2/src/core/s7_partner.h \snap7-full-1.4.2/src/core/s7_peer.h \snap7-full-1.4.2/src/core/s7_server.h \snap7-full-1.4.2/src/core/s7_text.h \snap7-full-1.4.2/src/core/s7_types.h \snap7-full-1.4.2/src/lib/snap7_libmain.h \snap7-full-1.4.2/src/sys/snap_msgsock.h \snap7-full-1.4.2/src/sys/snap_platform.h \snap7-full-1.4.2/src/sys/snap_sysutils.h \snap7-full-1.4.2/src/sys/snap_tcpsrvr.h \snap7-full-1.4.2/src/sys/snap_threads.h \snap7-full-1.4.2/src/sys/sol_threads.h \snap7-full-1.4.2/src/sys/unix_threads.h \snap7-full-1.4.2/src/sys/win_threads.h

libws2_32.a libwinmm.a这两个文件的路径要在本机上找.

连接PLC并进行读写

void MainWindow::on_pushButton_clicked() // 连接
{QByteArray ad(ui->lineEdit->text().toUtf8());char *Address;Address = ad.data();int Rack = ui->lineEdit_2->text().toInt();int Slot = ui->lineEdit_3->text().toInt();int tmp = Client->ConnectTo(Address, Rack, Slot);;showLog("建立连接", QString::number(tmp));
}
void MainWindow::on_pushButton_3_clicked() // write DB
{qint32 buff = ui->lineEdit_5->text().toInt();qDebug() << "write:" << buff;Client->DBWrite(8007, 12, 4, &buff);
}void MainWindow::on_pushButton_4_clicked() // read DB
{qint32 buff;Client->DBRead(8007, 12, 4, &buff);qDebug() << "read:" << buff;
}

测试可以正常读写DB块.在这里插入图片描述

附代码下载链接:https://download.csdn.net/download/qq_18822805/21648626


http://chatgpt.dhexx.cn/article/PXF65Emb.shtml

相关文章

python snap7 plc_Python-Snap7获取西门子PLC 300数值

说明 在一次数采项目中,对现场PLC300进行取数。本人小白,在网上搜罗了大量信息,终于找到解决方法。 准备事项 1. 操作系统 2.Python环境(本次使用Python3.6.6) 3.Snap7 connect connect(192.168.0.1, rack=0,slot=1) 三个参数分别为:IP 地址,机架,插槽 read_ar…

python-snap7的安装记录

python-snap7的安装记录-windows&#xff08;仅供个人备忘&#xff09; 首先 pip install python-snap7其次安装包再然后是环境变量最后是测试 网上其他人的资料尝试上去总感觉不靠谱&#xff0c;很多内容不是一篇网上的文章就能解决&#xff08;不是这里不对就是那里看不懂&am…

snap7

The Snap7 theatre (剧场、讲堂) The purpose of Snap7 is to fully integrate your PC station into a PLC network, without anybody sees the difference. To allow this, the Snap7 theater must be the same as the Siemens and contain the same actors. Snap7 library…

Python基于Snap7与PLC建立连接并读写数据

最近偶尔在网上看到可以用Python通过snap7与PLC建立连接并读写数据&#xff0c;好多小伙伴没有现成的PLC,这里介绍一个电脑模拟PLC与python通讯。效果与实际情况一样的。这里是以SIEMENS的PLC为例&#xff0c;通过Pycharm与TIA V17建立连接&#xff0c;对其DB块、M区、Q区、I区…

snap7通过NetToPLCsim工具接入模拟西门子PLC S7-1200步骤简介

概述 本文主要是设备通过S7协议接入西门子PLC S7-XXXX系列的开发使用文档&#xff0c;主要包括西门子PLC组态工具博途V15,PLC模拟工具S7-PLCSIM&#xff0c;IP地址映射工具NetToPLCsim等使用使用说明&#xff0c;S7协议的编译及使用说明等&#xff1b; 1 开发工具之间的关系 仿…

基于Snap7实现与西门子PLC通信

​如果你对西门子PLC通信或者上位机开发稍微有一点研究的话&#xff0c;应该对Snap7有所耳闻。 Snap7是一个基于以太网与西门子S7系列PLC通信的开源库&#xff0c;在世界领域应用很广。但也许是因为资料比较少&#xff0c;而且很多都是纯英文&#xff0c;在国内反而没有大规模…

c++ snap7通信vs环境配置与编程入门

前言&#xff1a;作者基本为电脑桌面软件开发小白&#xff0c;搜索网上的教程中踩了不少坑&#xff0c;在此整理分享最基础的vs环境下c开发snap7应用环境搭建&#xff0c;完成第一条snap7与PLC成功通信。 准备工作 Visual Studio 2013 及以后版本&#xff08;以下简称vs&…

Python使用python-snap7实现西门子PLC通讯

Python简介 Python是开源的高级编程语言之一&#xff0c;广泛应用于人工智能、数据分析、爬虫等领域。由于它拥有大量的开源库和标准库&#xff0c;以及简单且贴近自然语言的语法&#xff0c;所以即便是从未接触过编程的人&#xff0c;也能快速上手。2021年10月&#xff0c;Py…

手把手教你强化学习 (三)马尔可夫决策过程与贝尔曼方程

马尔可夫决策过程 (Markov Decision Process&#xff0c;MDP)是序贯决策(sequential decision)的数学模型&#xff0c;一般用于具备马尔可夫性的环境中。最早的研究可以追溯到最优控制 (optimal control)问题上&#xff0c;1957年&#xff0c;美国学者Richard Bellman通过离散随…

数学建模,8月学习感想

数学建模概览 Matlab入门常用的操作指令数据类型 建模流程分析问题建立模型&求解模型数据建模技术优化技术连续模型求解评价模型求解机理建模方法 撰写论文前情提示正文部分配套说明排版工具 写在最后 长文预警&#xff01;&#xff01;&#xff01; Matlab入门 Matlab可谓…

「从零入门数据分析」01_ 数据分析概述

作者 | gongyouliu 编辑 | auroral-L 本篇文章共8628字&#xff0c;预计阅读时间35分钟。 大家好&#xff0c;我是强哥。一个热爱暴走、读书、写作的人&#xff01; 本章目录 一、数据分析的发展简史 二、数据分析的应用场景 三、常用的数据分析工具与技术 四、数据分析的思维…

数学建模心得分享(校赛)——2021.6.7

一、个人感受 总结为&#xff1a;找队友->讲方法->找知识->善讨论->勤实践 基础能力(个人见解)&#xff1a; 第一次比赛完&#xff0c;还有这刚刚实习完的余温&#xff0c;工作中的思维的惯性还时刻在影响着我&#xff0c;身边的人几乎都为了自己的生活而奋斗。有幸…

matlab在管理学中的应用简述【一】

1、问题研究与描述 1.1 问题与模型 &#xff08;1&#xff09;问题 问题与人们的日常生活和工作有着密切的联系&#xff0c;人们每天都要面对各种各样的问题需要处理和解决。 如&#xff1a;资源配置问题&#xff0c;救灾抢险问题&#xff0c;时间安排问题&#xff0c;生产组…

大数据和人工智能属于什么专业 - 学大数据和人工智能出来做什么

人工智能专业主要从事什么工作&#xff1f; 1、算法工程师。进行人工智能相关前沿算法的研究&#xff0c;包括机器学习、知识应用、智能决策等技术的应用。以机器学习的过程为例&#xff0c;涉及到数据收集、数据整理、算法设计、算法训练、算法验证、算法应用等步骤&#xff0…

方差分析 anova一般指方差分析

方差分析(Analysis of Variance,简称ANOVA),又称“ 变异数分析”或“F检验”,是R.A.Fisher发明的,用于两个及两个以上 样本均数差别的 显著性检验。 由于各种因素的影响,研究所得的数据呈现波动状。造成波动的原因可分成两类,一是不可控的随机因素,另一是研究中施加的对…

继续无题

企业分为&#xff1a;决策层、管理层、执行层。 所以企业也会有&#xff1a;决策软件、管理软件、执行软件。 &#xff08;1&#xff09; 啥叫分析&#xff1f;分析就是根据现状&#xff0c;思考原因&#xff0c;这就是典型的归因&#xff1a;从现在往过去捋&#xff0c;这就叫…

数学建模经验分享及比赛时间汇总

一、浅谈数学建模1.1 什么是数学建模 先来看看官方的解释&#xff1a;数学建模是运用数学的语言和方法&#xff0c;通过抽象&#xff0c;简化建立能近似刻画“解决”实际问题的一种强有力的数学手段。数学建模就是用数学语言描述实际现象的过程。这里的实际现象既包涵具体的自然…

数模论文写作入门——正文篇

提示&#xff1a;数模论文写作入门还有“首页篇”和“排版篇”&#xff0c;可查看专栏补充。 目录 前言 一、问题重述 1、改词降重 水论文方法 2、 查阅相关背景资料 引用高大上 二、问题分析 三、模型假设 1.题目中明确给出假设条件 2.排除生活中小概率时间&#xff08…

SPSS统计分析过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、对数线性模型、聚类分析、数据简化、生存分析、时间序列分析、多重响应等几大类...

https://www.zhihu.com/topic/19582125/top-answershttps://wenku.baidu.com/search?wordspss&ieutf-8&lm0&od0 SPSS 18.0由17个功能模组组成&#xff1a; Base System 基础程式 Advanced Models 高等统计模组(GEE/GLM/存活分析) Regression Models 进阶回归模组 …

数学建模论文写作

声明&#xff1a;本文为本人在b站学习清风数学建模的学习笔记 数学建模清风——论文写作方法教程&#xff08;国赛和美赛&#xff09; 文章目录 论文写作方法国赛摘要摘要的开头段摘要的中间段摘要的结尾段摘要中常见的废话完整摘要参考关键词 &#xff08;正文部分&#xff09…