赞
踩
计划通过西门子 S7-1200(CPU 1212C-DCDCDC),进行PLC与设备间的数据监控。但 TIA Portal V15.1 的交互数据非专业人员很难一目了然,又不想专门购买西门子的可编程屏幕,所以拟采用 python-snap7 模块实现上位机与PLC的通信,并将运行监控抽象到 Tkinter 绘制的可视化GUI上,方便测试维护人员操作。
这边使用的是西门子CPU 1212C DC/DC/DC 型PLC,概述如下:
这款PLC包含8路数字量输入、6路开关量输出。设备接线图如下:
与从机设备的接线完成之后,通过 博图软件 TIA Portal V15.1 组态设备。其中主要关注其以太网IP地址为192.168.5.1(后面上位机连接的时候要用到):
编译软件和硬件,并下载到设备上,组态即完成。
【1】确定PLC中用到的数字量数据范围:
如下图所示,对于PLC来说,数字量输入/输出的起始地址均为0,那么相对应的,8路数字量输入的地址即从I0.0——I0.7,6路数字量输出的地址即从Q0.0——Q0.5。
【2】新建PLC数据类型:
为了方便对数据进行归纳,建立了两个数据类型dig_ctrl_type / dig_fbk_type ,其中:
- dig_ctrl_type 类型为长度为3的布尔型数组,用以收纳PLC发往从机设备的控制指令;
- dig_fbk_type 类型为长度为2的布尔型数组,用以收纳从机设备反馈回PLC的运行参数;
【3】若是要对数据进行简单监控,在PLC变量表中建立两个变量,dig_ctrl / dig_fbk ,数据类型选用上一步中新建的dig_ctrl_type / dig_fbk_type 两种数据类型,同时将起始地址定义为 Q0.0 / I0.0即可:
【4】上一步中创建变量可以对输入输出参数进行简单的监控,但若是要加入一些计算逻辑等,就需要用到程序块。
(1)首先添加新块并选择数据块DB1 ,并在新建立的数据块 Dig_Ctrl_DB 中引用之前的数据类型 dig_ctrl_type / dig_fbk_type并确定数据偏移量:
(2)在主程序块 Main[OB1] 中,将上面数据块DB1的内容,通过 MOVE 指令映射到PLC的Q0.0 / I0.0 地址中(!特别需要注意:数字量输出的方向为DB1——>Q0.0,数字量输入的方向为I0.0——>DB1):
至此,便可以通过操作DB1中 dig_ctrl(偏移值0.0——0.2) / dig_fbk(偏移值2.0——2.1)这两个变量,来对从机设备进行监控。
至此完成了前期PLC上面的准备工作,即完成组态,并通过数据块DB1实现与从机设备的交互。
接下来拟采用 python-snap7 模块实现上位机与PLC的通信,并将运行监控抽象到 Tkinter 绘制的可视化GUI上。这部分操作请移步:
【PLC+Python】上位机通过snap7实现与西门子PLC通讯并用Tkinter可视化——(2)Python通讯和可视化-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。