python读取plc数据并存为数据库,python读取plc上I点数据

  python读取plc数据并存为数据库,python读取plc上I点数据

  1、背景

  最近一位做工控的朋友找我,希望我帮开发一个个人电脑和可编程逻辑控制器(可编程逻辑控制器)之间通信的接口。现场的情况是这样的:一台Linux操作系统操作系统服务器通过以太网和S7-1200 PLC连接,用户希望从客户端实现对可编程逻辑控制器(可编程逻辑控制器)的读写。

  说到可编程逻辑控制器(可编程逻辑控制器)通信,一开始我想到的是用(同OligomericProanthoCyanidins)原花青素服务器来实现,因为之前有做过(同OligomericProanthoCyanidins)原花青素服务器的相关开发。但是(同OligomericProanthoCyanidins)原花青素服务器是基于分布式组件对象模型的方式来通信的,Linux环境下是不支持的。朋友希望最后开发出来的接口是可以实现跨平台的,于是我决定用计算机编程语言来开发,而且大蟒有很多开源的第三方库可以用。后来在栈溢出看到有人使用Snap7实现过与S7-200的通信,使用的正是python-snap7。

  2、Snap7

  Snap7是一款开源的32/64位多平台以太网通信套件,用于与西门子S7 PLC进行本地连接。新款CPU 1200/1500,旧款S7200,小型徽标0BA7/0BA8和SINAMICS Drives也得到部分支持。官网地址:http://snap7.sourceforge.net/,有python、c#和爪哇使用的库。

  3、snap7安装

  使用大蟒的点命令安装即可:pip安装python-snap7

  或者通过离线安装,先下载python-snap7,在https://pypi.org/project/python-snap7/#files下载python-snap7-0.9.tar.gz,解压后使用大蟒路径/setup.py安装命令进行安装即可。1(路径为解压后setup.py文件的路径)。

  4、在windows中简单测试

  

  

  5、用很少的代码就可以实现PLC的读写。

  测试程序源码https://gitee.com/xiuping_z/Python-Snap7-for-PLC-S71200/attach_files

  #数据查询,查出结果为字节字符串

  定义查询数据(自身):

  plc=快照7 .客户端.客户端()

  尝试:

  plc.connect(自身IP.get()、self.rack.get()、self.slot.get())

  data=plc.db_read(self .DBNo.get(),self.dataAd,self.dataSz)

  self.txtMsg.insert(END,data)

  例外情况为e:

  self.txtMsg.insert(END,(e, IP:,self .IP.get()))

  最后:

  if plc.get_connected():

  plc.disconnect()

  #发送数据

  定义发送数据(自身):

  plc=快照7 .客户端.客户端()

  这里,我们用新数据替换数据库块中的一段数据

  参数:

  db (int):要使用的数据库

  开始(整数):数据库中的起点

  大小(整数):数据的大小,以字节为单位

  _ butearray(可枚举):要放入数据库的数据

  尝试:

  数据=自身StrtoByesarray(self.data.get())

  如果不是data.strip():

  self.txtMsg.insert(END,发送数据不能为空)

  返回

  plc.connect(自身IP.get()、self.rack.get()、self.slot.get())

  plc.db_write(self .DBNo,self.dataAd,data)

  例外情况为e:

  self.txtMsg.insert(END,(e, IP:,self .IP.get(), Port:))

  最后:

  if plc.get_connected():

  plc.disconnect()

  #将字节字符串转化为字节

  def StrtoByesarray(self,strdata):

  strarry=strdata.split()

  list=[]

  对于斯特拉里的itm:

  列表。追加(itm)

  返回字节数组(列表)

  snap7使用上如果有疑问可以加我Q949588515

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: