Snap7用途
Snap7 是一个基于以太网与S7系列的西门子PLC通讯的开源库。
支持包括S7系列的S7-200、S7-200 Smart、S7-300、S7-400、S7-1200以及S7-1500的以太网通信。
Snap7 API
QT与西门子S7通信主要有以下部分:
- 创建Snap7 Client连接;
- 连接到PLC;
- 读取DB数据;
- 关闭Client(连接会自动销毁)
C++源码
#include “snap7.h”;
byte MyDB32[256]; //
byte is a portable type of snap7.h
TS7Client *Client;
void SymplyGet()
{
MyClient = new TS7Client();
MyClient->ConnectTo(“192.168.10.100”,0,2);
MyClient->DBRead(32, 0, 16, &MyDB32);
delete MyClient;
}
实例
- 添加Snap7库
将文件snap7.h,snap7.cpp,snap7.dll,snap7.lib全部加入创建工程的目录下,其中将snap7.dll放入debug目录下。
- 项目文件
/************************
自己的QT安装路径
*************************/
LIBS += D:\QT\qt_anzhuang\Tools\mingw530_32\i686-w64-mingw32\lib\libws2_32.a
LIBS += D:\QT\qt_anzhuang\Tools\mingw530_32\i686-w64-mingw32\lib\libwinmm.a
INCLUDEPATH += ./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.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