python与plc通讯_Python-snap7与S7-1500的通讯

一、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号

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值