【PLC+Python】snap7/Tkinter实现与西门子PLC通讯/可视化(1)——PLC DB块创建

一 背景说明

        计划通过西门子 S7-1200(CPU 1212C-DCDCDC),进行PLC与设备间的数据监控。但 TIA Portal V15.1 的交互数据非专业人员很难一目了然,又不想专门购买西门子的可编程屏幕,所以拟采用 python-snap7 模块实现上位机与PLC的通信,并将运行监控抽象到 Tkinter 绘制的可视化GUI上,方便测试维护人员操作。

二 PLC组态

        这边使用的是西门子CPU 1212C DC/DC/DC 型PLC,概述如下:

        这款PLC包含8路数字量输入、6路开关量输出。设备接线图如下:

        与从机设备的接线完成之后,通过 博图软件 TIA Portal V15.1 组态设备。其中主要关注其以太网IP地址为192.168.5.1(后面上位机连接的时候要用到):

        编译软件和硬件,并下载到设备上,组态即完成。

三 PLC通过DB块读写数据

【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博客

        

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值