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块.

Qt5调用Snap7相关推荐

  1. qt5调用python脚本 两次失败_Qt5调用Python脚本中的函数

    我有一个简单的Qt5项目,有一个按钮和一个文本字段,我也在项目中创建了一个py文件来检查如何从Qt调用python文件中的函数.在 虽然现在我卡住了:我有我的测试cpp.h和测试cpp.cpp,其中我 ...

  2. 【FLIR工业相机】一、环境配置:win10+VS2017+qt5+spinnaker+opencv+python

    系列文章目录 一.环境配置:win10+VS2017+qt5+spinnaker+opencv+python 二.相机调用:VS2017+qt5调用FLIR工业相机实时成像 三.图像处理:C++调用p ...

  3. qt 调用qpainter_在Qt5.4中如何实现QOpenGLWidget和QPainter混合编程

    在Qt5.4的Example中,有一个例子qopenglwidget,介绍了QOpenGLWidget和QPainter,但是在使用过程中,需要注意哪些方面呢?我在最初使用的时候就遇到两者不能同时使用 ...

  4. VS2015+OpenCV3.4.5+QT5.12+WINDOWS10用c++调用tensorflow训练好的.pb文件图像检测

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_31806049/article/ ...

  5. QT5百度地图开发学习——qt调用JavaScript函数并传参

    文章目录 前言 一.通信桥梁bridge 二.QT与JS相互通信(调用函数) 1.QT调用js函数 前言 在上文<QT5百度地图开发学习--控件提升展示地图>中,我们通过控件提升的方式在同 ...

  6. 【新手】基于C++Qt5通过调用百度翻译API制作简易翻译工具

    基于C++Qt5通过调用百度翻译API制作简易翻译工具 目录 基于C++Qt5通过调用百度翻译API制作简易翻译工具 写在前面 步骤: 1.注册百度翻译开放平台账号并开通翻译服务 2.下载安装Qt5和 ...

  7. QT5百度地图开发学习——qt调用输入位置坐标位置进行百度地图定位

    系列文章目录 上一章: QT5百度地图开发学习--JavaScript调用qt函数并传参给qt 文章目录 系列文章目录 前言 一.界面设计 二.槽函数 总结 前言 本文实现输入坐标然后在地图上显示位置 ...

  8. Window10 OpenCV3.4.7 CMake3.18.0 QT5.5.0 编译配置及调用

    QT开发中经常遇到使用OpenCV,记录一下OpenCV库的编译调用过程. 承接各类STM32项目.JAVA.C++.Android.微信.Linux,毕业设计开发 手机:18559979152(微信 ...

  9. 【Qt教程】3.5 - Qt5 QPainter绘图抗锯齿、相对坐标/平移坐标系、QPainter画图片、手动调用QPainter绘图事件

    GitHub源码仓库:Qt学习例程 1. QPainter绘图抗锯齿 /// 抗锯齿测试 /// painter.drawEllipse(QPoint(100,50), 50, 50);// 设置 抗 ...

  10. linux qt调用摄像头,Qt5下实现摄像头预览及捕获图像方法实例

    Step4:修改mainwindow.cpp 源码如下 #include "mainwindow.h" #include "ui_mainwindow.h" M ...

最新文章

  1. ROS中base_link, odom, fixed_frame, target_frame和虚拟大地图map的关系
  2. 最小二乘法的本质是什么?
  3. 编排管理成容器云关键,Kubernetes和Swarm该选谁
  4. 数据输出:如何将数据带给页面||SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面
  5. 谈谈高并发系统的限流
  6. 解决各大浏览器兼容问题hack方法总结
  7. 2018/3/1 省选模拟考试 50分
  8. Taro+react开发(58) toHtml
  9. c++基础学习(11)--(模板、预处理器、信号处理)
  10. Mars 如何分布式地执行
  11. Eclipse--java.lang.OutOfMemoryError: PermGen space
  12. 动态设置control的显示与隐藏
  13. 网络蜘蛛的工作原理及操作
  14. 【项目总结】中国大学生计算机设计(机械制造暨政治正确)大赛
  15. 日常塑料用品有哪些种类?
  16. 剑指 Offer 53 - II. 0~n-1中缺失的数字
  17. 湖南大学ACM程序设计新生杯大赛(同步赛)L-Liao Han【打表规律+二分】
  18. 2019测试工程师面试题
  19. 机型增多,时间延长,华为一口价更换原装电池活动惊喜不断
  20. 【Python学习】Word文档重复字检测程序

热门文章

  1. 联通盒子系统服务器,联通IPTV盒子刷机方法,实现软件任意安装
  2. uboot开机logo
  3. 防碰撞算法 matlab仿真,基于毫米波雷达的汽车防撞系统的设计
  4. 《深度学习推荐系统》读书笔记
  5. 如何理解数列极限和收敛性
  6. 蚂蚁课堂笔记之 spring详解
  7. python下载bt文件_Python实现解析Bit Torrent种子文件内容的方法
  8. Newtonsoft.Json基础问题
  9. 单片机开发需要的工具以及软件有哪些
  10. latex模板章节序号标签加粗