当前位置:首页 > 通信技术 > 通信网络
[导读]   前言   dx系列中波发射机是由美国harris公司制造的全固态数字调幅发射机,由于其运行稳定、各项指标好、整机效率高等优点,在全国各台站得以广泛应用。我台自1999年起开始使用dx

  前言

  dx系列中波发射机是由美国harris公司制造的全固态数字调幅发射机,由于其运行稳定、各项指标好、整机效率高等优点,在全国各台站得以广泛应用。我台自1999年起开始使用dx-400发射机,在10年左右的使用与维护工作中我们曾对dx-400发射机进行了两次自动化改造。第一次改造是用omron c200h plc加外围电路来实现对发射机和附属设备进行采样和控制的,但在实际的使用过程中我们发现这样的控制系统有其致命的局限性。因为系统是plc加外围电路实现的控制系统就决定了系统无法显示机器内部数据的实时状态,无法与发射机内部实现直接通信。因此只有实现了工控机与发射机的控制核心——plc(可编程控制器)直接通信才能克服这一局限性,真正实现实时掌握机器内部数据状态和对发射机的直接控制。dx-400发射机控制单元使用的是a-b plc,这种plc是rockwell automation的专利产品,使得第三方的软件不能很好地与a-b plc进行连接。在实际改造工作中我们找到了一种采用dde(动态数据交换技术)技术与a-b plc进行数据交换的方法,能够更好的解决这一瓶颈问题。

  dde技术的工作机制

  dde是动态数据交换技术的缩写,是为在同一台计算机或不同计算机上运行的程序提供动态数据交换的一种新技术,最早由microsoft公司提出的。动态数据交换(dde)技术由于其具有实时性好、网络通信连接实现方便等特点,在控制软件与信息网络集成中得到了广泛应用。

  动态数据交换基于widnows消息机制,各应用程序间通过传递消息进行对话交换信息。windows dde消息传递采用client/server模式,客户(client)是数据的请求和接受者,而服务器(server)是数据的提供者,两者之间通过请求、应答、传输三个步骤来完成数据的传送。dde协议使用服务(service)、主题(topic)和数据项(item)三级命名来标识dde所传递的数据单元。一般情况下,服务(service)就是应用程序的文件名,主题是对服务器有意义的信息单元。每次dde客户与服务程序之间的对话都是先由客户启动的,所以在每次客户启动之前,dde服务器应当首先投入运行。

  当客户程序需要向服务器程序请求数据时,客户程序发送一条wm-dde-initeate消息给当前运行的所有widnows应用程序,这条消息不但包含了它所需要的服务器名(service)和主题名(topic),而且指明了它所希望的数据类型,收到wm-dde-initeate消息的应用程序通过判别服务器名和会话主题决定是否应答,一旦dde服务器响应了这条被传播的消息,dde会话就开始了。

  dde的工作方式有冷连接(cool link)、温连接(warm link)和热连接(hot link)等3种。在冷连接方式下,当server中的数据发生变化后不主动通知client,但client可以随时从server读写数据;在温连接方式下,当server中的数据发生变化后马上通知client,client得到通知后将数据取回;在热连接方式下,当server中的数据发生变化后马上通知上位机(工client,同时将变化的数据直接送给client。

  

  硬件连接与系统配置

  控机)与a-b plc的连接方式有两种:一种是利用厂家提供的dh+485数据线将上位机通讯卡与a-b plc cpu模块的dh+接口直接连接;一种是通过自制的r232数据线将上位机com口与a-b plc cpu模块的rs232接口直接连接。

  通讯卡连接方式

  将allen bradley公司出品的1784-pktx通讯卡安装到上位机上。安装方法如下:

  请确认已将其中一块通讯卡上的地址跳线帽(jp3)拔掉。参见图1。

  (1)打开工控机机箱,将1784-pktx通讯卡插入pci插槽内,固定螺丝,盖好盖板;

  (2)启动工控机,系统检测到硬件。如果用户已经安装rslogix500软件,则系统将自动检测到驱动。如果用户尚未安装rslogix500软件,可先安装该软件,软件安装完毕后,系统将自动为通讯卡安装驱动程序;

  (3)用dh+485数据线将上位机(工控机)与plc连接;

  (4)使用rslinx连接a-b plc的通讯网络,运行rslinx

  classic软件。点击菜单中“通信”选项,在下拉列表中选择“配置驱动程序”:(参见图2)。

  点击该选项后,弹出如图3所示页面,在下拉列表中选择1784-kt/ktx(d)/pktx(d)/pcmk for dh+/dh485

  devices后,单击【新增…】按钮:

  此时弹出确认框,如图4所示。

  点击“确定”后,弹出如下页面,如图5所示,在“值”下拉列表中选择pktx(d)选项:

  点击“确定”后,rslinx配置完成。

  

  r232连接方式

  (1)按照标准电缆1747

  cp3的内部接线图(如图6)自制com口通信电缆也是能够实现上位机与plc的通信的,此种电缆的优点:造价低廉、使用方便;缺点:不能通过这种数据线组成plc网络,实现多plc资源共享。

  (2)使用rslinx连接a-b plc的通讯网络

  配置方式与前相同只是在进入config dirvier菜单后弹出如图7所示页面。

  在下拉列表中选择rs-232 df1 devices选项,然后点击“新增”按钮会出现如下对话框,如图8所示。

  点击“确定”,出现如下对话框,如图9所示。

  点击“自动配置”按钮,系统开始对plc进行自动配置。以上配置完成后点击“确定”按钮并关闭对话框(此时程序回最小化并没有关闭)。

  进行dde服务的配置

  在菜单栏中打开“dde/opc”菜单并选择“主题组态”对话框,如图10所示。

  

  

  从图左侧我们发现了要找的plc并在右侧显示了“主题列表”中看到程序名。点开“数据采集”栏在“处理器类型”下拉菜单中选择“slc-503+”项,这一步很重要只有通过它才能正确的加载驱动程序,为通信打下基础,如图11所示。

  

  点开“高级通信”栏在“通信驱动程序”中选择“ab df1-1 dh485 工作站”项,如图12所示。

  这样在rslinx软件中对a-b plc的通信配置就完成了,建立与plc数据联结既可以完成与plc的数据交换。

  利用vb开发dde客户端

  vb作为microsoft 公司软件产品的重要一员,理所当然的对windows操作系统下的dde技术给予支持。vb为一些控件提供了用于dde动态数据交换的linktopic、linkitem、linkTImeout、linkmode等属性,以及linkrequest、linkpoke、linkexecute、linksend等方法。其中,linktopic、linkitem两项属性分别对应于dde通讯架构中的主题名和数据项名,linkTImeout、linkmode分别表示dde 客户端与dde服务器的尝试连接时间和连接模式(数据交换方式),linkmode有manual、notify、automaTIc三种方式,而automaTIc方式最为常用,它主要用于和dde server建立“热连接(hot link)”,即在dde服务器数据发生变化时主动发送数据给客户端。linkrequest、linkpoke分别用于dde客户端对dde服务器数据的读写操作。

  在vb中实现与a-b plc的“热连接”

  在visual basi建立一个新工程,添加几个label控件,并建立和rslinx的dde通讯连接,使其随上一步所设置好的连接的a-b plc数据“b01主系统”数值的变化而变化。

  其代码如下:

  private sub form_load()

  label1.linktopic = “rslinx|” & “b01主系统”

  label1.linkitem = “s:42”

  label1.linkmode = 1

  label1.linkrequest

  label3.linktopic = “rslinx|” & “b01主系统”

  label3.linkitem = “s:41”

  label3.linkmode = 1

  label3.linkrequest

  label5.linktopic = “rslinx|” & “b01主系统”

  label5.linkitem = “s:40”

  label5.linkmode = 1

  label5.linkrequest

  label10.linktopic = “rslinx|” & “b01主系统”

  label10.linkitem = “n60:11”

  label10.linkmode = 1

  label10.linkrequest

  label12.linktopic = “rslinx|” & “b01主系统”

  label12.linkitem = “n60:130”

  label12.linkmode = 1

  label12.linkrequest

  label14.linktopic = “rslinx|” & “b01主系统”

  label14.linkitem = “n60:131”

  label14.linkmode = 1

  label14.linkrequest

  end sub

  其中,代码中的“rslinx”和“b01主系统”分别表示应用程序名和主题名,“linkmode”值为1表示连接方式为automatic(即“热连接”)方式。这样当该应用代码被执行时,label的值便随a-b plc内存值的变化而变化。具体执行如图13所示。

 

  

  2012-11-2 13:49:02 上传

  下载附件(48.02 KB)

  在excel中实现通过dde方式访问a-b plc 首先必须先安装rs linx创建dde topic. 比如我们定义一个topic名叫“b01主系统”,打开excel,创建宏命令,编写vba脚本如何读取和写入数据,从而完成与plc的数据交换。

  sub start()

  dim lngrow as long

  dim varcycle as variant

  dim varlogging as variant

  dim varresults as variant

  on error goto error

  rsichan = ddeinitiate(“rslinx”, “ b01主系统”)

  varlogging = dderequest(rsichan, “n60/163”)

  varcycle = dderequest(rsichan, “n60/161”)

  l/?

  if varcycle(1) = “1” and varlogging(1) = “1” then

  lngrow = 3

  if range(“indata!a3”).value 》 3 then

  lngrow = range(“indata!a3”).value

  end if

  for lngrow = lngrow to 65500

  if cells(lngrow, 1) = “” then exit for

  range(“indata!a3”).value=lngrow + 1

  next

  rsichan = ddeinitiate(“rslinx”, “n1”)

  f810data = dderequest(rsichan, “f8:10”)

  f811data = dderequest(rsichan, “f8:11”)

  f812data = dderequest(rsichan, “f8:12”)

  f816data = dderequest(rsichan, “f8:16”)

  f818data = dderequest(rsichan, “f8:18”)

  f817data = dderequest(rsichan, “f8:17”)

  f820data = dderequest(rsichan, “f8:20”)

  f821data = dderequest(rsichan, “f8:21”)

  f822data = dderequest(rsichan, “f8:22”)

  f823data = dderequest(rsichan, “f8:23”)

  f824data = dderequest(rsichan, “f8:24”)

  varresults = dderequest(rsichan, “f8:25”)

  ddeterminate (rsichan)

  cells(lngrow, 1).value = f810data

  cells(lngrow, 2).value = f811data

  cells(lngrow, 3).value = f812data

  cells(lngrow, 4).value = f816data

  cells(lngrow, 5).value = f818data

  cells(lngrow, 6).value = f817data

  cells(lngrow, 7).value = f820data

  cells(lngrow, 8).value = f821data

  cells(lngrow, 9).value = f822data

  cells(lngrow, 10).value = f823data

  cells(lngrow, 11).value = f824data

  cells(lngrow, 13).value = now()

  end if

  end sub

  在vb中实现调用excel后台数据库

  因为前期已经实现了vb与plc的通讯可以实时看到数据的状态了,随后又实现了excel与plc的通讯也可以实时看到数据的状态,但这两种方法都有其局限性:前者可看、可控但因无数据库无法实现数据的存储,后者可看、可查但因无可执行程序无法实现可控。只有二者结合在一起才能扬长避短充分发挥功效。于是在vb中实现调用excel后台数据库这种方式就应运而生了,这种方式即充分发挥了vb可控的一面又实现了excel对数据的强大处理能力可以说上位机真正实现了对plc可看、可查、可控的功能。vb与excel的连接方法如下:

  (1)在工程中引用microsoft excel类型库:从“工程”菜单中选择“引用”栏;选择microsoft excel 9.0

  object library(excel2000),然后选择“确定”。表示在工程中要引用excel类型库。

  (2)在通用对象的声明过程中定义excel对象:

  dim xlapp as excel.application

  dim xlbook as excel.workbook

  dim xlsheet as excel.worksheet

  (3)在程序中操作excel表常用命令:

  set xlapp = createobject(“excel.application”) `创建excel对象

  set xlbook = xlapp.workbooks.open(“文件名”) `打开已经存在的excel工件簿文件

  xlapp.visible = true `设置excel对象可见(或不可见)

  set xlsheet = xlbook.worksheets(“表名”) `设置活动工作表

  xlsheet.cells(row, col) =值 `给单元格(row,col)赋值

  xlsheet.printout `打印工作表

  xlbook.close (true) `关闭工作簿

  xlapp.quit `结束excel对象

  set xlapp = nothing `释放xlapp对象

  xlbook.runautomacros (xlautoopen) `运行excel启动宏

  xlbook.runautomacros (xlautoclose) `运行excel关闭宏

  利用以上命令可以很轻松的实现vb与excel的连接功能在此不再赘述。

  结束语

  vb因其功能强大、操作简洁近几年在诸多领域得到了广泛的应用,尤其因其对dde技术的完美支持更凸显出在自动控制方面的优势。通过它我们能很方便的实现上位机与plc的数据通讯,更能与数据库进行完美对接,真正实现了上控机对dx发射机可看、可查、可控。希望通过此文对广大一线工作人员有所帮助。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着工业自动化技术的快速发展,PLC(可编程逻辑控制器)在温度控制领域的应用越来越广泛。然而,在实际应用中,有时会出现PLC显示温度不变化的情况,这不仅影响了生产过程的稳定性和效率,还可能对设备造成损害。本文旨在深入探究...

关键字: plc 可编程逻辑控制器

PLC(可编程逻辑控制器)和单片机是两种不同的控制设备,它们之间存在明显的区别:

关键字: 单片机 plc 控制器

在工业自动化领域,单片机和PLC(可编程逻辑控制器)都扮演着举足轻重的角色。它们作为控制系统的核心,负责监控、控制和管理各种工业设备和流程。然而,尽管它们有着共同的目标,但在结构、功能和应用方面却存在着显著的区别。本文将...

关键字: 单片机 plc (可编程逻辑控制器)

步进电机常用来做定位控制,它可以由PLC输出的脉冲数量控制旋转的角度(相对来说可以是距离),脉冲的频率控制步进电机旋转的速度。

关键字: 步进电机 plc 定位控制

西门子S7-400系列的PLC是一款性能强劲的工控设备,广泛应用于各种工业自动化领域。它具有灵活的可编程性、高速响应、良好的抗干扰能力等优点。在该系列中,通讯模块是一项重要的组成部分。本文将详细介绍S7-400PLC的通...

关键字: 西门子 plc S7-400

PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或...

关键字: plc 编程 plc编程

西门子S7-1500PLC是一个模块化控制系统,适用于离散自动化领域内的各种自动化应用。模块化、无风扇设计、易于实现分布式结构以及方便的操作,使得西门子S7-1500成为中、低端应用中各种不同任务的经济、用户友好的解决方...

关键字: 西门子 S7-1500 plc

对新手PLC编程入门,或刚毕业的大学生,或多或少对PLC编程有所了解。学习PLC编程常见的方法就是通过相关的辅导书籍来学习,当然,随着PLC培训班的兴起,去PLC编程培训学校学习也是一种很好的学习方法。

关键字: plc 算术运算 指令

可编程逻辑控制器是种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令

关键字: plc 通讯 逻辑运算

S7-200 是一种小型的可编程序控制器,适用于各行各业,各种场合中的检测、监测及控制的自动化。S7-200系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。因此S7-200的系列具有极高的性能/价格...

关键字: 西门子 S7-200 plc
关闭
关闭