通过Snap7与 LOGO!8PLC通信

5 篇文章 7 订阅
1 篇文章 0 订阅

前言

因一项目需要web控制LOGO! PLC,利用西门子自带的免费LOGO!8.2 Web Editor工具可以很完美的做web页面开发。可以参考视频教程。此外西门子还提供数据导出到excel工具——LOGO8.2 Access Tool

上面两款工具虽然使用起来非常便捷,但还是想结合Snap7、树莓派、Python做一个简单的动态web页面。

由于LOGO!PLC通讯方式与1200 1500PLC完全不同,有很多坑。

PLC 控制逻辑为:
M1=0时,泵Q1启动;而M1=1时,泵Q1关闭。
M2=0时,阀门Q2打开;M2=1时,手阀门Q2关闭。
当NI1=1时,阀门Q3打开,NI1=0时,阀门Q3关闭。
注意:数字量输入LOGO不可以远程更改;NI表示网络输入。

本文仅仅是个人经验总结,并一步步详细记录snap7获取和写入数据的步骤。snap7获取数据后的web页面可以用python flask或php等实现,就不再介绍。

硬件

Logo! PLC: 西门子6ED1052-1MD08-0BAD(8.FS4 固件版本号1.82.01 )

软件

西门子LOGO! 编程软件:LOGO!8.2 Soft Comfort
Python: 3.7.4
Snap7:1.42
python-snap7:0.10

主要参考

1)http://www.ad.siemens.com.cn/club/bbs/post_one_floor.aspx?b_id=28&a_id=1481079
2)https://cache.industry.siemens.com/dl/files/852/109768852/att_990439/v1/Help_zh-CHS.pdf?download=true
3)http://www.ad.siemens.com.cn/productportal/prods/logo/8_communication/Erthenet/S7/logo_1200_S7_logo_client/logo_1200_S7_logo_client.html
4)http://snap7.sourceforge.net/logo.html

PLC编程

新建网路项目

1) 在logo! Soft Comfot中选择工具-》设置,将编辑器变为成LAD和语言可以改为中文状态
在这里插入图片描述
2) 新建项目,需要选择网路项目(NWP)
3)添加新设备,注意IP地址和网关

在这里插入图片描述

编程

在电路图编辑器中编程(这与1200,200 PLC非常不同,刚开始接触比较难懂)
在这里插入图片描述
其中网路输入NI1为V0.0.
在这里插入图片描述

本地连接

1)Logo设置IP地址为192.168.0.3
2)设置本地连接网路属性
在这里插入图片描述

下载

1)点击工具栏上的下载按钮
2)选择连接方式
3)测试是否可以连接通过
4)刷获取连接信息
5)确定

在这里插入图片描述

监控调试

1)下载完成程序后,泵Q1和阀门Q2自动开启(可以听到继电器吸合声音)
2)点击电路图编辑器中的在线测试图标在这里插入图片描述
在这里插入图片描述
可以发现M1和M2为灰色,Q1和Q2为黄色亮灯状态,Q3为灰色。表明程序运行正常
3)点击指示灯右侧最后一个图标(数据表)
在这里插入图片描述
4)编辑数据监控表
如下图填写数据表
在这里插入图片描述
从上图中可以看出QB0的实际二进制值为0000 0011,即泵Q1和阀门Q2都是开启状态,而QB1和QB2均为00000000,QB3输入不了,这是我们需要特别注意——LOGOPLC数据存取方式。

4)修改M1值使得泵Q1关闭
MB0赋予新值为1
结果如下:
在这里插入图片描述
5)M2强制赋值为1
在M1为1基础上强制M2为1,因为M1实际存储在M0.0(M0字节中的0号位),而M2存储在M0.1(M0字节中的1号位),所以对应的M0二进制位0000 0011,即数值为3.
在这里插入图片描述
5)修改网络输入值NI1
直接在V0.0赋予新值为1即可。
在这里插入图片描述

LOGO!VM映射

LOGO! VM数据存储方式比较奇特。
其数据类型有:
I数字量输入;AI模拟量输入;Q数字量输出;M:M标志位;V变量位存储器;VW变量字存储器;AQ模拟量输出;AM模拟量M标志位。
利用S7通信时需要用到VM映射,详细介绍见LOGO!Soft Comfort在线帮助手册

VM地址和数据类型

在这里插入图片描述

I/O 与 LOGO! 0BA8 VM对应关系

在这里插入图片描述

LOGO! 与 S7通过 VM 地址分享数据

在这里插入图片描述
LOGO! 主机模块也可通过 VM 地址(991 至 1002)与 SIEMENS SIMATIC S7/Modbus
兼容设备及 HMI 设备共享时间和日期信息。
在这里插入图片描述在这里插入图片描述

监控测试VM区

1)对泵Q1启动M1标志位和阀门Q2启动标志位M2的VM修改,根据VM和I/O对应表,M起始位置为1104,故只需在“数据表中”输入VB1104,选择二进制数据类型,此时数值为2#0000 0011

在这里插入图片描述
将其赋予新值为0(M1、M2均为0)或1(M1为1,M2为0)或2(M1为0,M2为1)
① VB1104为0时
在这里插入图片描述
②VB1104为1时
在这里插入图片描述
③VB1104为2时
在这里插入图片描述

2)NI1网络输入值得修改
NI网络输入块类型对应的VM地址1246-1261。

NI1强制为0,具体如下图。
在这里插入图片描述
注意:这里VB1246为红色表明这个地址没有激活或者赋值,而我们在网路输入设置时试将NT1保持到V0.0中,所以用VB0。

Snap7读写数据

S7连接设置

S7连接设置折腾了很久,具体参考以下链接或文本:
1)softComfort 说明书2.8。5.37
2)http://snap7.sourceforge.net/logo.html
3)http://www.ad.siemens.com.cn/club/bbs/post_one_floor.aspx?b_id=28&a_id=1481079
4)http://www.ad.siemens.com.cn/productportal/prods/logo/8_communication/Erthenet/S7/logo_1200_S7_logo_client/logo_1200_S7_logo_client.html
才略知一二。
1)在网路视图中的logoPLC上点击右键
2)选择添加客户端连接中的S7连接
在这里插入图片描述
3)在服务器端填写IP地址和TSAP值
其中若编程电脑作为服务器,IP地址为本机的(例如192.168.0.10);TSAP:03.00(TSAP是通信连接地址)。
在这里插入图片描述
4)填写传输数据
备注说明:Snap7读取时可以不用写传输数据表。下面操作均没有填写此表。

5)重新下载程序

Snap7连接PLC

在这里插入图片描述
这与Snap7官方输入方式不同,而且按照官方输入不能成功,非常感谢cen827在西门子论坛提供的解决方法

读取PLC值

Snap7 读取PLC各块值编号如下:
在这里插入图片描述

1)读取Q1,Q2,Q3值
①QB区读取
在这里插入图片描述
②DB区读取
在这里插入图片描述
对比实际值,完全一致(二进制11就是十进制3)。
在这里插入图片描述
2)读取M位
将阀门Q2标志位M2赋予新值为1,即MB0=2#0000 0010
在这里插入图片描述
获取值如下图:
在这里插入图片描述

写入PLC值

注意:
①LOGO!PLC中数字量输入DI是不能被写入,
②当外部强制赋值时,可能不会改变是因为程序原因,即修改后,程序在下一个周期马上复位到原来值,不是没有修改成功。

1)将M2赋值为0,M0赋值为1,即MB0值由2#0000 0010变为为2#00001
初始值:
在这里插入图片描述
写入
在这里插入图片描述
结果
在这里插入图片描述

2)通过VM数据块写入

将阀门Q3网络输入NI1赋值为1
未赋值前状态图:
在这里插入图片描述
写入
在这里插入图片描述
运行结果
在这里插入图片描述

总结

Snap7连接LOGO! PLC主要步骤:
1)设置S7连接IP地址和通信连接地址TSAP
2)参数VM,Q,M变量变量范围,尤其是VM地址范围
3)读取最小的都是一个字节不是一个位,读取和赋值时都需要进行相应的处理

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值