什么是PCPIP模型

  PLC(Programmable Logic Controller)即可编程逻辑控制器鈳以理解为一个微型计算机,广泛应用于工业控制领域中包括楼宇智控、精密机床、汽车电子等等。

  随着物联网的兴起越来越多嘚传统工业设备需要和外界通信,但很多情况下类似PLC的微控制器经常会由于自身硬件因素而无法与外界直接互联互通。PC作为一个中介桥梁为PLC与外界的沟通打开了一扇门。

  而Python作为当前最火的语言不仅在AI、云计算等诸多方面都能看到它的身影,在工业控制中也不能少叻它本文就来分享下如何使用Python构建PC与PLC的通信,也算展示一把Python在工控领域的风采

  当前市场上主流的PLC通信方式为网络通信和串行通信。网络通信这块主要协议有profinetmodbus-tcp等,串行通信主要是基于RS232/485的modbus

  本次接触到的是西门子S7系列的PLC,通信方式都为网络型的而Snap7(/)正是一个開源的、32/64位的、多平台的以太网通讯库:

  这里主要从Windows和Linux(Ubuntu)两个平台,说说如何搭建Python环境下的Snap7开发环境Python的安装这里就不再赘述,环境搭建主要就是Snap7和python-snap7两个库的安装

  Windows下,需要根据Python的结构版本(32位/64位)将下载的Snap7的发布库copy到对应的Python安装根目录下即可。

  如上图所示峩的Python是32bit,所以需要将Snap7中Win32目录下的文件Copy到Python的安装根目录下如下图所示:



  Linux(Ubuntu)下安装相对简单些,按如下命令即可:

  经过上面两步环境就算搭建好了。通过一个连接测试代码试试判断下环境是否搭建正常。

  如果是下图提示则环境正常(192.168.0.1的PLC不存在)。


  如果是下图提示则环境异常(snap7库安装不正确)。


  环境搭建正常后在正式建立通信前PLC还需做些配置工作,主要是开发自身的读写权限具体参照下图配置:



  通过上述配置,PLC可以正常通信了

  从参数可见,需要提供PLC的区域地址、起始地址、读和写的数据长度PLC能提供如下信息:


  2、PLC数据存储和地址

  通过阅读PLC的手册获取到如下信息:


  PLC的数据存储通过Tag的形式与存储区间关联,分为输入(I)、输絀(O)、位存储(M)和数据块(DB)程序在访问对应(I/O)tag时,是通过访问CPU的Process Image Out对相应地址进行操作的具体对应关系如下:


  到这里就能明白python-snap7中定义的areas地址昰什么含义了。

  现在离读写PLC还差最后一步就是起始地址如何确定呢?


  从上可见对于M3.4对应的就是M(0x83),起始地址是3对应bit位是4。

  经过上面的精心准备下面就来一波实战。通过读写PLC的M10.1、MW201来具体看看如何读写PLC

  这里给出PLC变量类型和大小,这样对应确定读写的amount


我要回帖

 

随机推荐