本文章记录Python-snap7零基础的安装和测试过程。
硬件:
1)S7-1500 CUP 1511-1 PN(6ES7511-1AK02-0AB0)
2)SD存储卡 4M(6ES7 954-8LC03-0AA0)
3)220V AC 转 24V DC 电源适配器
4)网线
软件:
1)博途 V15.1
2)Python 3.7.4
平台:
win7 SP1 64位
https://blog.csdn.net/weixin_40844416/article/details/80889165
https://blog.csdn.net/qq_34935373/article/details/97374783
https://sourceforge.net/p/snap7/discussion/general/thread/ef6aab94/?limit=25
https://github.com/gijzelaerr/python-snap7
https://pypi.org/project/python-snap7/
https://www.python.org/
安装完成博途V15.1后,在https://www.python.org/下载Python3的安装程序。
注意尽量选择Windows x86-64 executable installer版。
安装过程中,需要勾选 Add python to PATH 添加路径。
snap7 安装需要用pip,先用下面命令检查是否安装了pip。
pip --version
安装过程中pip没有装上,可以先安装PIP。可参考下面的连接安装。
https://jingyan.baidu.com/article/7c6fb428d84f9480642c90d1.html
先下载snap7-full-1.4.2和Python-snap7
解压snap7-full-1.4.2,找到release\windows\win32下的的snap7.dll和snap7.lib,分别拷贝到Python的安装目录和系统windows下的SysWOW64下。
win+R打开“运行”,输入cmd,确定后,进入DOS命令行终端,输入下面的命令:
pip install python-snap7
接通电源后,CPU开启,但是背景是黄色,表明设置有问题。
主要设置PI地址。
按照下面的步骤进行设置:
在设备和网络中,添加设备。操作如下:
为了使snp7和s7 进行通信需要在软件中进行设置。
1)防护安全,必须选择“完全访问权限”;
2)连接机制,必须勾选允许来自远程对象的PUT/GET通信访问
3)若创建了DB块,需要对其属性进行设置,取消优化的块访问,勾选可以OPCUA访问DB
按上面步骤进行设置后,必须重新进行编译。否则用snap7连接PLC可以成功,但是不能获取数据,报“snap7.snap7exceptions.Snap7Exception: b’CLI : function refused by CPU (Unknown error)’”。
点击下载,装载后完成即可。
没有报错就行,CPU显示屏幕由黄色变为绿色,Run状态。
若将已经在不同版本型号PLC CPU写入程序的SD卡,回出现下载硬件配置报错。例如:先在1511 CPU中插入SD,编译完成后,再将这张SD卡插入1214 CPU中,就会出现“硬件配置——加载硬件配置失败,请检查目标硬件设备的诊断缓冲区”。1200PLC可以断电后拔除SD卡即可。若1500PLC需要将SD卡再window下删除“SIMATIC.S7S”目录下的数据。切记、切记、切记(重要事情说三遍)不能在window下格式西门子的SD卡,不然卡就报废了。
win+R打开“运行”,输入cmd,确定后,进入DOS命令行终端,输入下面的命令:
import snap7
plc=snap7.client.Client()
plc.connect('192.168.0.1',0,1)
data=plc.read_area(0x81,0,0,1)
print(data)
转PLC在线,将I0.0和Q0.0强制变为1.
data=plc.read_area(0x81,0,0,1)
print(data)
data2=plc.read_area(0x82,0,0,1)
print(data2)
plc.write_area(0x81,0,0,b'\x00')
data=plc.read_area(0x81,0,0,1)
print(data)
这样就表明snap7和simatic s7通信程序成功。