基于B/S结构的自动装配实验系统实时监控程序设计

   2023-11-15 互联网1690
核心提示:  1 引言  当前,随着internet的不断普及和深 入,大大促进了远程教育和远程医疗等技术的发展。其中,在远程实验方面国内外

  1 引言

  当前,随着internet的不断普及和深 入,大大促进了远程教育和远程医疗等技术的发展。其中,在远程实验方面国内外逐步兴起并不断完善。如新加坡国立大学可以实现远程完成机器手自动控制实验等实验项目。在国内,哈工大已经实现可在课堂演示的网络实验室系统,老师可以在课堂上通过操纵实验室的设备进行现场演示。基于传统的客户机/服务器模式,需 要在各个终端下载客户端应用程序;而随着internet浏览器的普及,基于浏览器/服务器模式的应用则可以大大克服上述缺点,而且可以方便移植到 pda、手机等移动终端上。

  2 自动装配实验系统简介

  自动装配实验系统是模拟工厂 车间里的零件上线、分类、装配和下线的过程。其执行元件有气缸和电磁铁等。该实验系统模拟的流程是:已经加工好的轴零件和孔零件分别送入工业传送带上;经 过传感器的检测判别后,由分类顶出气缸动作来决定其不同的输送路径;轴零件和孔零件均到达装配点后,由龙门式机械手动作,完成二者的装配过程;零件装配完成后下线,而且整个装配过程中可以完全自动运行,直至所有的零件装配完毕。

  3 自动装配实验系统硬件构成

  自动装配实验系统硬件上 主要有以下几部分构成:机械部分、驱动部分、传感器和s7-200控制器

  其中机械部分用工业用铝型材快速构建,两条传送带负责输送零件。驱动部 分由气缸、步进电机等组成。传感器选用了光电开关、接近传感器等。

  整个运行过程控制选用了西门子公司的s7-200系列的PLC,其cpu- 226类型的带有两个高速脉冲输出口,方便对两个步进电机进行控制。

  4 上位机监控方法

  西门子s7-200系列的plc要实现与上位机的通讯,可以有很多种方式。如利用西门子公司自带ppi、mpi协议的专用软件等,但由于其协议未公开,如果要自主开发,难度很大;抑或是利 用西门子plc上预留的自由通讯口,其协议可以用户完全自定义,保密和安全性好,但开发起来比较耗时,而且对编程者要求较高。

  因此我们考虑采用 opc技术,它一方面屏蔽了与底层plc的通信驱动细节,一方面提供了标准的客户端访问接口,可以方便的完成对底层数据的采集,而且通过修改plc程序, 可以方便地完成对底层设备的实时控制。

  在本监控系统中,采用了mos公司的simatic mpi 的opc服务器,它专用于西门子公司所有支持mpi协议的plc。根据标准的自动化接口,其客户端的编写方便可行。其连接步骤大致如下:

  (1) 创建一个本地或局域网内的opc server连接;

  (2) 定义itemid和clienthandle;

  (3) 对opc server添加group和item;

  (4) 对opc server中item数值读取和写入,已完成对设备的操作。

  在opc数据读 写中有同步和异步两种模式,二者的区别在于,在调用同步数据访问方法时,opc程序必须等待opc服务器的动作完成。在上述装配实验系统中, 采用了订阅方式的数据采集, 使得一旦底层数据变化,上位机即可马上更新,而且将更新的数据写入装配的数据库中去。

  5 监控软件结构

  为了方便教师上课现场演示,使教师在 上课时能对实验设备进行实时的操作和控制,从而提高学生感性认识和兴趣的目的,对该实验系统采用了基于浏览器/服务器模式的分布式监视和控制方法。同时加 上网络摄像头的实时反馈,使得学生有明确和清晰的认识。

  采用的软件结构如图1所示。

  图1 监控软件结构框图

  图1所示的opc服务器端、opc客户端同在局域网内,或是同一主机上。而安装webserver程序的主机选在与上述同一局域网内的另一主机上, 则是出于网络安全考虑。

5.1 通信方式执行步骤

  基于winsock控 件的通信灵活方便,对编程者要求不高。通信方式一般采用主动请求方式,服务器程序启动后,一般按如下步骤执行:

  (1) 一个专用于侦听的winsock控件,其端口不断监听是否有客户端请求;

  (2) 一旦有客户请求到达,处理该请求并做出应答。如果有并发请求到达, 则激活一个新进程来处理该客户请求;

  (3) 服务完成后,关闭该服务通信信道,返回到侦听状态;

  (4) 关闭服务器。

  5.2 客户端的执行步骤

  而在winsock客户端,一般执行如下的步骤:

  (1) 确定服务器端的地址,并连接到其特定的端口;

  (2) 向服务器提出请求,等待并接受应答数据;

  (3) 请求结束后,断开连接。

  在上述系统中,winsock服务器端在opc的客户端应用程序中,把opc server采集的数据通过winsock传输到web服务器程序中。

  自定义的winsock服务器端和客户端读写数据的格式如下。

  客户端读plc的某一位:

  服务器端返回的某位数据:

  客户端写plc的某一位:

  服务器段写完后,返回该位数据:

  对其中客户端 读取plc的某一位做详细说明如下,字符“*”表示帧的开始,而字符“@”表示一帧的结束,“rd”表示读取命令,“i0001”表示plc输入位i0.1的位。这里为了方便,直接把opc中项的取名和输入输出一一对应。

 6 用visual basic开发示例

  这里介绍在 opc客户端程序中,winsock服务器端应用示例部分。下列部分为winsock服务器端如何处理客户端请求。

  private sub

  wsklisten_connectionrequest(byval requestid as long)

  ’客户端有连接请求时触发

  dim i as integer

  '决定由哪一个winsock 对象接受请求

  for i = 1 to maxchan - 1

  if wskserver(i).state = 0 then

  exit for

  end if

  next i

  ’如果该对象可用,则接收请求

  if wskserver(i).state = 0 then

  wskserver(i).accept requestid

  textdata = "收到一个连接请求!"

  listinfo.clear

  listinfo.additem textdata

  exit sub

  end if

  ’关掉“判断忙”的winsock对象

  wskbusy.close

  wskbusy.accept requested

  下面介绍winsock服务器端如何读取和处理数据。

  ' 读取数据

  wskserver(index).getdata s

  s = trim(s)

  get1 = mid$(s, 1, 1)

  get5 = mid$(s, 5, 1)

  '判断 头和尾对否

  if not (get1 = "*" and get5 = "@") then

  goto wskdataerror

  end if

  getcmd = mid$(s, 2, 2)

  '判断是何种命令状态

  if getcmd = "rd" then

  listinfo.additem ("读取运行状态!")

  '横向气缸钮

  elseif getcmd = "i2000" then

  '转向出错处理

  on error goto opcwerror1

  listinfo.additem("命令:" + getcmd + "横向气缸")

  '得到opc服务器返回的句柄,它由添加项的操作返回

  mysyncitemserverhandles(1) = itemserverhandles(5)

  ' 载入要写的值1

  mysyncitemvalues(1) = cbool(1)

  ' 调用同步写的操作

  frmoption.connectedgroup.syncwrite myitemcount, mysyncitemserverhandles, mysyncitemvalues, mysyncitemservererrors

  '延时 0.1s

  pausetime = 0.1 '延时0.1s

  start = timer

  do while timer < start + pausetime

  doevents '将控制权转给其它程序

  loop

  ' 载入要写的值0

  mysyncitemvalues(1) = cbool(0)

  ' 调用同步写的操作

  frmoption.connectedgroup.syncwrite myitemcount, mysyncitemserverhandles, mysyncitemvalues, mysyncitemservererrors

  goto skipopcsyncwriteerror1

  opcwerror1:

  call displayopc_errorvalue("写横向气缸项值", err.number)

  在web服务器端程序中,使用winsock客户 端对象,把用户浏览ie页面的请求转发到winsock服务器端,从而通过opc客户端监控底层设备。这里对详细的程序不在详细介绍。

用户通过 ie浏览器访问,可以实时看到该系统运行的状态,而且具有控制权限的用户还可以实时控制。如下图2所示。

  同时,用户可以通过网络摄像头实时反馈现 场的画面。如图3所示。

  图2 用户ie浏览界面

<p style="text-align: c

 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅