当前位置:   article > 正文

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

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

前言:作者基本为电脑桌面软件开发小白,搜索网上的教程中踩了不少坑,在此整理分享最基础的vs环境下c++开发snap7应用环境搭建,完成第一条snap7与PLC成功通信。

准备工作

测试环境

  • win10专业版21H2
  • Visual Studio 2019专业版
  • 博途v16
  • 西门子S7-1516F
  • snap7-full-1.4.1

软件安装(略) 


正文


  • 环境配置

1.打开vs,新建 控制台应用项目→输入项目名称→新建

2.找到源文件 “项目名称.cpp” 的文件所在的目录并记住

3.将下载好的snap7库压缩包解压并根据实际使用编译环境选择“snap7.lib”和“snap7.dll”两个文件,以及“snap7.cpp”和“snap7.h”两个文件,并将这4个文件复制到 2 中的目录下

        如我的环境为win32,路径在 "xxx\snap7-full-1.4.1\release\Windows\Win32"以及“xxx\snap7-full-1.4.1\examples\cpp”中

4.在vs中,需配置项目属性(快捷键:Alt+Enter)的链接器,或者菜单栏“项目”→“项目名称属性”→“配置属性”→“链接器”→“常规”→“附加库目录”,将.lib.dll文件所在文件夹路径添加到里面并应用

5.在 插入附加依赖项中手动输入.lib文件名,并应用

6.在解决方案资源管理器中,头文件→添加现有项→snap7.h,源文件→添加现有项→snap7.cpp

至此,环境已配置好

 


  • 编译第一个程序

1.PLC端根据需求选择设置访问级别;新建一个全局DB块,并把优化的块访问去掉;下载硬件配置到PLC中

2.在设备组态中可查看PLC的机架号(导轨),插槽号 

3.PLC端在创建的DB块中加入几个Static量,添加好后编译,可看到偏移量

4.在自己创建的.cpp文件中,引入头文件snap7.h,编写程序

 下面这段代码的功能为读取PLC中代号为10001的DB中的8个Byte,并打印在屏幕上。

  1. #include <iostream>
  2. #include "snap7.h"
  3. using namespace std;
  4. unsigned char TestValHex[8];
  5. TS7Client* MyClient;
  6. void SymplyGet()
  7. {
  8. MyClient = new TS7Client();
  9. MyClient->ConnectTo("10.17.103.2", 0, 1); //PLC的IP地址,机架号,插槽号
  10. MyClient->DBRead(10001, 0, 8, &TestValHex); //PLC中的DB块编号,起始字节,要读取的字节长度,将要写入本地的变量
  11. delete MyClient;
  12. }
  13. int main()
  14. {
  15. SymplyGet();
  16. for (int a = 0; a < 8; a++) {
  17. cout << "PLC_Data" << a << ":" << hex << int(TestValHex[a]) << endl;
  18. }
  19. return 0;
  20. }

 5.点击调试,得到运行结果

 成功,接下来请自由发挥。


更多snap7函数请参考下载的库文件包里的使用手册

参考手册路径在 xxx\snap7-full-1.4.1\doc\Snap7-refman.pdf

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/779962
推荐阅读
相关标签
  

闽ICP备14008679号