1 引言

PLC 作为一种稳定可靠的控制器在工业控制系统得到了广泛的应用[1]。但是由于中小型plc的人机接口功能不很完善,不能提供给用户一个友好的交互界面,因此妨碍了对现场运行过程的跟踪与监控[2~5]。目前一些通用的组态软件,以其功能强大、界面友好、开发简洁等优点在计算机监控领域已经得到了广泛的应用,但是一般价格比较昂贵[6~7]。

visual basic6.0 在开发可视化环境下的监控系统时具有其独特的优势,它本身提供的mscomm控件就是为应用程序提供串口通讯而设计的,它屏蔽了通讯过程中的底层操作,只需设置、监视mscomm控件的属性和事件即可完成对串行口的初始化和数据输入输出[8~10]。西门子s7-200plc由于其体积小,可靠性高,通讯功能强大等特点,在工业控制领域得到广泛的应用。s7-200系列plc的通讯方式主要有三种:ppi方式、profibus-dp方式、freeport(自由口)方式。其中自由口方式是由用户自己定义通讯协议,具有与外围设备通讯方便、自由,易于计算机控制软件的开发等特点,因此使用自由口通讯方式实现plc与上位机通信的控制方案较多[11~14]。

本文采用s7-200plc的自由口通讯协议,基于vb6.0开发了一种简单实用且易于功能扩展的监控界面,其中计算机作为上位机,通过mscomm控件建立与下位机plc的通讯,可以实现数字量和模拟量读写、存储及模拟量趋势曲线绘制。

2 通讯原理

在上位机中,通过vb6.0中的mscomm控件完成数据的发送与接收;在下位机中则是通过plc的指令完成数据的发送与接收的。

2.1 通讯初始化设置

由于s7-200plc与计算机的自由口通讯是串行通讯,故通讯前需要通讯双方的串行端口初始化,使双方通讯参数保持一致。

(1) 上位机初始化设置

上位机使用mscomm控件通过串行端口发送和接收数据,因此首先要对mscomm控件进行初始化设置,主要始化设置如下:

setTIngs:以字符串的形式设置并返回波特率、奇偶校验位、数据位和停止位。其中以字符n、o、e 分别代表无校验、奇校验和偶校验。

inputmode:设置从缓冲区读取数据的格式;0为字符串格式(text),1为二进制格式(binary) [15]。

(2) 下位机的初始化设置

为了使下位机与上位机的通讯参数保持一致,可通过对plc的自由端口控制寄存器smb30(端口0)或smb130(端口1)的设置来实现。由于本文中使用的是cpu222是端口0,因此对plc的通讯设置是通过设置smb30来完成的。smb30的设置主要包括奇偶校验位、数据位、波特率、协议选择等参数。本文smb30设置内容如下,奇偶校验为不校验、字符数据位为8位/字符、波特率为9600bit/s、协议选择为自由口协议,故smb30设置为9。由于本文是通过接收字符中断接收数据,通过定时中断发送数据,因此需要将两个中断初始化。

plc主要初始化设置:

图1 数据存储时的界面

(1) 上位机通讯方式

首先将上位机待发送的m个字节依次存储在数组s中,每次待接收的数据存储在变量r中。

发送信息时,数组s中第一个元素s(0)存储第一个待发送字节……最后一个元素s(m-1)存储最后一个待发送字节,发送方式为mscomm1.output=s。

接收方式为 r="mscomm1".input。

由于plc中的信息是以byte的形式传输到计算机中,因此上位机需要对接收的数据进行数据处理。由于plc中模拟量传感器数据是以word的形式存储在aiw中,而plc在发送该数据时是按照word对应的两个byte发送,故计算机在后台计算中要将其对应的两个byte转换为word。为了在人机界面中表达数字量(qb,ib,mb)的各个状态,需要在计算机后台计算中把plc的各数字量的十进制转换为八位二进制,通过对八位二进制的每个位做0、1判断,利用vb6.0可使用多种方法把判断结果表达在界面中。

图2 存储在excel表格中的部分数据

(2) 下位机通讯方式

为了在计算机中实时显示plc运行状况及传感器的实时数据,就需要plc主动发送信息。为此,本文通过“定时中断”使plc周期地向计算机发送数据。具体方法是在定时中断事件里,使用plc自带的发送指令xmt发送数据,定时中断的时间设置(1ms~255ms)即为发送周期。

s7-200系列的PLC接收指令有两种方法:第一种方法是使用plc自带的rcv指令来接收计算机数据;第二种方法采用plc提供的“接收字符中断”方式,将smb2(自由口接收字符缓冲区)定义指针,使用指针接收数据。在这两种方法中,第二种方法更加灵活,因此在本文中,plc在接收信息时采用指针接收数据。即在plc接收数据时,每次接收m个字节,仅在第一个字节进入smb2时定义指针,并将该字节写入指针所指向的变量存储字节;第二个字节进入smb2时,指针指向下一个变量存储字节,并把第二个字节写入……最后一个字节进入smb2时,指针指向下一个变量存储字节,把第m个字节写入。若数据接收完成,则清空用于计数的变量存储字节,等待下次接收数据,至此完成一次数据接收。本文中在接收字符中断里使用指针接收2个字节:

3 数据存储

vb6.0可将数据存储在多种数据库中(如access、excel等)。考虑到excel简单实用且应用广泛,通过设置excel的宏属性,就可将实时数据保存在创建的excel文件中,并可方便的查看历史数据。

本文通过vb6.0链接一个指定的excel文件,在vb程序里定时器的触发事件将数据存储至excel文件,存储方法如下:

k=k+1

xlsheet.cells(k,r) = v`数据v写入excel第r列,随着时间k的增加依次逐行存储。

为了建立vb6.0与指定excel文件的链接,需要对链接的双方分别进行设置。首先建立并指定一个excel文件,命名为“g”,存储路径为“d:g”,通过设置该文件宏属性,可建立excel向vb6.0的链接。exel中的宏属性设置设置为:

在vb6.0向excel链接时,考虑到数据快速地写入excel,为避免误操作引起excel运行终止,本文在打开exel时设置excel不可见,当数据存储完毕后,设置excel可见。

(1) 打开exel(链接到指定的exel文件)

(2) 关闭exel

xlapp.visible = true `设置excel可见

set xlapp = nothing `释放excel对象

4 运行实例

为了验证本设计在实际应用中的有效性,本文利用实验室现有设备,在cpu222的扩展模块em235中接入2个位移传感器,设计了一套简单实用的人机界面。在界面中,计算机实时的显示两个位移传感器的数据及其曲线图,并能将数据自动存储至指定excel文件中;在界面中可以显示plc的数字量输入、输出状态及模拟量的实时变化曲线;通过“启动”、“停止”按钮可以直接控制plc的各输出点。

设置plc以200ms为周期每次发送9个字节,将传感器1的数据存入vw2(发送vb2和vb3),传感器2的数据存入vw4(发送vb4和vb5),i0.0~i0.7的状态字节ib0存入vb6,i1.0~i1.7的状态字节ib1存入vb7,q0.0~q0.7的状态字节qb0存入vb8,q1.0~q1.7的状态字节qb1存入vb9,m0.0~m0.7的状态位mb0存入vb10。

计算机每次发送2个字节,第一个字节写入变量存储字节vb100中,并将vb100的数据赋值给qb0,进而实现点击“启动”/“停止”按钮控制q0.0~q0.7;第二个字节写入变量存储位vb101,该字节通过比较指令中的“字节等于”连接发送指令xmt,实现界面中点击“开始监控”(字节等于1)时plc开始发送数据,点击“停止监控”(字节等于0)时plc停止发送数据。

为了实现计算机直接控制plc的数字量输出,本设计在界面中使用8对“启动”/“停止”控制按钮,其中任何一个控制按钮的点击都是一次计算机向plc的数据写入。在qb0中该字节对应的8个位控制plc的8个数字量输出点(q0.0~q0.7),故这里通过定义一个数组q(0 to 7),数组中的8个元素分别对应qb0中的8个输出点,每次点击界面中控制按钮都是向对应元素的赋值,并将8个元素的赋值求和,求和的结果即为写入qb0的内容。其中每个“启动”按钮的赋值为对应元素的十进制数值,任何“停止”按钮的赋值都为0。

下面是人机界面运行中的截图,界面中的图表横坐标单位是“s”,纵坐标单位是“mm”,图表刷新周期为1秒,数据存储至excel文件的周期是200ms。开始监控后,使用两个量程为100mm的位移传感器,用手动方式移动传感器的检测部位,在数据存储过程中,excel文件不可见,停止数据存储后,自动弹出excel文件。在图2、图3中,a列和b列分别表示位移传感器1(黑色曲线)和位移传感器2(红色曲线)的历史数据。

图3 exel中的数据生成图表

5 结束语

本文应用s7-200plc的自由口通讯协议,以计算机为上位机,plc为下位机,基于vb6.0设计了一套简单实用且易于实现的监控界面。通过mscomm控件建立与下位机plc的通讯,较好地实现了数字量和模拟量读写、存储及模拟量趋势曲线绘制。实验表明该监控系统能准确地监控各类数字量(如q,i,m)信息,自动绘制模拟量变化的实时曲线并存储相应的模拟量数据。

本文设计的通讯方法简单实用且易于功能扩展,可以plc在中小场合的应用,为plc控制系统信息化、智能化发展提供了可行的探索路径。

plc计算机验证方案,基于VB6.0的S7-200 PLC与计算机的 - PLC实验 - 电子发烧友网相关推荐

  1. 鸿蒙连接plc,PLC实现两线连接型数显仪表系 - PLC实验 - 电子发烧友网

    引言 目前的PLC系统有时需借助于专用的人机界面(HMI).工业PC来显示过程变量或设置系统参数.HMI和IPC不仅增加了PLC系统的成本,而且无法适应高温.高湿热.多粉尘的工作环境.如果使用PLC系 ...

  2. java通信rs485_基于VB6.0与485仪表的Modbus RTU通信(含代码)

    JZGKCHINA工控技术分享平台 尊重原创 勿抄袭 勿私放其他平台 前言 在写这边文章时,很纠结,到底要不要写呢?原因主要有3个:第一.VB6.0这么古老的语言现在还有人用吗?现在不是很流行C#.P ...

  3. 基于VB6.0的货架数量管理系统

    1.上位机软件使用:vb6.0:SQL SERVER2003; 2.设备包括: ①LED显示屏 ②货架 货架总计有18个仓位,每个仓位配备一个RFID读卡设备. ③232-485转换头 ④REID读写 ...

  4. 用vb6.0查看计算机用户名,如何使用vb6.0输入登录窗口的用户名和密码?

    这有一些问题.首先,您没有给网页加载机会.在Web浏览器的DocumentComplete事件中执行AutoLogin().此外,如果ok按钮不在INPUT标签集合的末尾,那么您可以提交没有所有数据的 ...

  5. 计算机二级后续操作基于此文件,2017年9月全国计算机等级考试二级MS-office高级应用考试预测题-2.pdf...

    自2007 年开始培训全国计算机二级 2017 年9 月全国计算机等级考试 二级MS office 高级应用考试预测题-2 题干: [背景素材] 小许正在撰写一篇有关质量管理的论文,按照如下要求帮助小 ...

  6. 软件及硬件联调测试情况,基于ZigBee的无线输液监控方案 - RF/无线 - 电子发烧友网...

    在医疗系统中,病人在输液过程中的监控问题,一直是护士和病人关心的问题,一但监控失误就会使空气进入人体的血液系统,造成严重的后果,甚至会使患者死亡.现有的控制系统,多采用有线技术进行检测传感器网络的组建 ...

  7. s7 200 java_java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC...

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...

  8. arm linux 工控,基于ARM和Linux通用工控平台设计 - ARM - 电子发烧友网

    交叉编译 交叉编译就是在一个平台上生成另一个平台上的可执行代码.所谓平台,实际上包含两个概念:体系结构及操作系统.根据上述建立的开发环境,目标平台是基于ARM体系结构的运行嵌入式Linux操作系统,而 ...

  9. 基于HMM的连续小词量语音识别 - 模拟技术 - 电子发烧友网

    相关推荐 人工智能在经历了迅速发展之后,AI 领域的人才需求也发生调整.近日,猎聘联合 GMIC 发布了< 2... 发表于 2018-04-12 15:38 • 63次阅读 确定最佳深度可以降 ...

最新文章

  1. 微软面试题系列(四):在二元树中找出和为某一值的所有路径
  2. 复合非聚集索引里列的顺序的重要性
  3. 集合类-HashSet去重
  4. [Java] 1001. 害死人不偿命的(3n+1)猜想 (15)-PAT乙级
  5. [JarvisOj][XMAN]lTell Me Something
  6. cactiez mysql_cactiez v11添加对mysql数据库、apache系统进行监控
  7. 算法学习:01背包问题求具体方案
  8. 计算机类核心期刊投稿的一些资料汇总
  9. Panel 控件概述(Windows 窗体)
  10. 写给学生看的系统分析与验证笔记(一)——形式化基础
  11. 计算机科学基础word实验一,【实验2】熟悉WORD界面及其基本操作
  12. Myeclipse/Eclipse中修改WebContent/WebRoot
  13. 美国儿科学会育儿百科
  14. 健康心理学类毕业论文文献包含哪些?
  15. 利用opencv棋盘格标定法对鱼眼图像校正分析
  16. Win8.1系统所有的路径都无法更改文件夹名称
  17. 机械臂matlab运动学仿真,matlab建立机械臂运动学仿真
  18. 英语发音规则---V字母
  19. Rails 中 scope
  20. 等保测评--网络安全等级保护测评过程指南

热门文章

  1. 南开大学统计与数据科学院夏令营
  2. 云服务器+ngrok搭建内网穿透服务(只有公网ip无域名)
  3. Mac 下修改mysql密码
  4. 9. Simulink系统仿真
  5. VS2019安装(含免费安装包)
  6. kali更新源,没有公钥,没有release文件,签名失效,404
  7. 三维实景建模及倾斜摄影建模解决方案,附应用案例
  8. spring boot配置阿里云maven库
  9. 为什么要制定企业标准
  10. c语言-统计某类完全平方数