一、Python与pip的安装
Python安装略,pip是Python包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。Python 3.4+ 以上版本都自带 pip 工具。
查看python及pip的版本号。
python --versionpip --version
二、安装Python-snap7
pip在线安装python-snap7的命令如下:
pip install python-snap7
下载并解压snap7-full-1.4.2,找到release\windows\win64下的的snap7.dll和snap7.lib,分别拷贝到Python的安装目录和系统windows下的SysWOW64下。
三、PyCharm中引用第三方模块
PyCharm编辑Python时,发现无法引用snap7等第三方模块,因此无法获得代码智能提示。
事实上,在cmd中通过pip安装的第三方模块,只是加载到了Python本体解释器,并未加载到PyCharm对Python的解释器中。
进入PyCharm中,点击下方的Terminal,进入PyCharm自带的类似cmd的命令行窗口,按照cmd的安装步骤再来一遍即可解决。
四、S7-1500项目设置
这是工控人的强项
,简单说明如下:
1、CPU:rack=0,slot=1
2、IP地址设置
3、访问级别,选择“完全访问权限”
4、连接机制,勾选“允许来自远程对象的PUT/GET通讯访问”
5、DB数据块属性,去除“优化的块访问”的勾选
6、DB数据块中数据的属性,勾选“可从HMI/OPC UA访问”
五、连接测试
通讯测试非常顺利,读写数据时,格式转换是一个难点,另篇详述。
import snap7import structplc = snap7.client.Client()plc.connect("192.168.0.12", 0, 1)print("连接状态:", plc.get_connected())IB0_str = plc.read_area(0x81, 0, 0, 1)IB0_tuple = struct.unpack("!B", IB0_str)IB0_int = struct.unpack("!B", IB0_str)[0]QB0 = plc.read_area(0x82, 0, 0, 1)MW2 = plc.read_area(0x83, 0, 2, 2)DB1_DBD4_str = plc.read_area(0x84, 1, 4, 4)DB1_DBD4_tuple = struct.unpack("!f", DB1_DBD4_str)DB1_DBD4_float = DB1_DBD4_tuple[0]print("IB0 =", IB0_str)print("IB0 tuple =", IB0_tuple)print("IB0 int =", IB0_int)print("DB1_DBW4 =", DB1_DBD4_float)
MD4 = b"\x1A\x2B\x3C\x4D"plc.write_area(0x83, 0, 4, MD4)
一汽铸造有限公司无锡分公司
江苏省无锡市惠山区北惠路55号