1、安装7z解压工具

sudo apt update
sudo apt upgrade
sudo apt install p7zip-full

2、采用wget方式获取snap7

wget "https://jaist.dl.sourceforge.net/project/snap7/1.4.2/snap7-full-1.4.2.7z"

 

3、下载完,默认是7z文件,因此需要7z解压,指令如下:

 解释一下指令:
7z 解压缩文件命令
snap7-full-1.4.2.7z 表示解压缩文件名
-r 表示递归解压缩所有的子文件夹
-o 指定解压到的那个目录 注意:-o 后面没用空格
./snap7 要解压到的路径

4、编译snap7动态库:

(1)编译

首先查找自己系统是什么架构,一般开机都有,如下:

 

aarch64架构,ARM v8, 根据官网的说法,编译动态库采用:x86_64_linux.mk,其他请自行确认。

 

指令如下:

#这里需注意你的解压缩后文件夹的位置,我的是cd /home/admin/snap7/snap7-full-1.4.2/build/unix
cd /root/snap7/snap7-full-1.4.2/build/unix  

然后执行如下命令:
sudo make -f x86_64_linux.mk all

 查看生成的文件   libsnap7.so

 拷贝至lib库

sudo cp /home/admin/snap7/snap7-full-1.4.2/build/bin/x86_64-linux/libsnap7.so /usr/lib/libsnap7.so
sudo cp /home/admin/snap7/snap7-full-1.4.2/build/bin/x86_64-linux/libsnap7.so /usr/local/lib/libsnap7.so

 

复制完毕后,执行:

sudo ldconfig

ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

执行如下:

 

5、安装python3-snap7:

指令如下:

sudo pip3 install python-snap7

执行如下:

 

6、测试:

 

 附加测试,如果执行报错,可先进行ping PLC的IP测试和telnet测试

使用 PowerShell测试:

a、以管理员身份运行 PowerShell。

b、输入以下命令并回车:

dism /online /enable-feature /featurename:TelnetClient

c、然后使用telnet命令

 

参考文档:Ubuntu22.04与西门子PLC S7-1200通过Python-snap7通讯,获取PLC数据并存入数据库mysql-物联沃-IOTWORD物联网