WinCC和EXCEL大数据传递.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案 文档 1、DDE简介 动态数据交换(DDE)是基于Windows的消息机制,两个Windows应用程序通过相互之间传递消息进行“对话”,这两个程序被分别称为“服务器”和“客户”。DDE服务器是一个维护着其他Windows程序可能使用的数据程序,而DDE客户则是从服务器获得这些数据的程序。 DDE对话是由客户程序发动的。客户程序将一条称为WM_DDE_INTITIATE的消息发给当前运行的所有Windows程序,这条消息指明了客户程序所需要的数据类别,拥有这些数据的DDE服务器可以响应这条消息,这样一个对话就开始了。 DDE的对话方式有3种: ①服务器数据变化时,直接把数据送给客户,由客户对这些数据进行处理,这类对话方式称为热链;②服务器的数据变化时,服务器通知客户,再由客户取数据,这种方式称为温链; ③由客户申请数据、服务器发送数据的方式称为冷链。 一、Wincc作为DDE的客户端,Excel作为DDE服务器(本地) ? 1、在变量管理上按鼠标右键--添加新的驱动程序--选“windows dde.chn” ???????????????????????????? 图1 ? 2、在DDE上按鼠标右键--新驱动程序连接--点属性,在其连接属性中: “计算机名称”为空;“应用程序”为excel;“主题”为[]工作表名,比如[DDE.xls]sheet1。 图2 3、在DDE\excel下建变量,在变量属性中选择地址,条目名称填:r行数c列数,比如r1c1(表示第一行第一列的单元格),重复步骤3可以加入更多的DDE变量 ? ?????????????????????? ? 图3 4、Excel程序 ? 图4 Wincc程序 图5 5 完成   ? 用OPC做比较省事。 WinCC做OPC?Server,Excel做OPC?Client。 这种情况下,WinCC端不需要做任何设置,只要在Excel?里用少量的代码就能实现双方的通讯。 对于WINCC与S7-300的通讯,首先要确定PLC的通讯口类型,PLC一般都集成了MPI/DP口,还可以安装通讯模块。计算机(PC)上安装适当的通讯卡(不同的通讯卡支持的通讯协议不同)。看你需要啦! 其次是WINCC软件里的通讯协议要与PC机对应。WINCC提供了SIMATIC?S7?PROTOCOL?SUITE?通讯驱动程序,包含了多种通讯协议! 最终还有自己亲自实际操作了才有深刻的了解的!! Sub X6309X94AE9X0000X6539_OnClick(Byval Item)??? Dim fso,myfile Set fso = CreateObject(scripting.FileSystemObject) Set MyFile = fso.GetFile(d:\Excelcode.xls) Dim ObjExcelApp Set objExcelApp = CreateObject(Excel.Application) objExcelApp.Visible = True objExcelApp.Workbooks.Open MyFile 上面的程序段是为了打开d盘下叫Excelcode.xls名字的excel文件 objExcelApp.worksheets (sheet1).Cells(1, 1).VAlue = HMIRuntime.Tags(usercodenew1).read objExcelApp.ActiveWorkbook.Save 上面两行的作用是将wincc变量usercodenew1的值写到Excel表中的A1格子里面,并且保持一下 Dim coldold Set coldold=HMIRuntime.Tags(usercodeold1) coldold.Value = objExcelApp.worksheets (sheet1).Cells(1, 1).value 上面这两句的作用是将刚才保持到Excel表格中的数据重新读回wincc,存到usercodeold1变量中,当然现在其实并没有存入usercodeold1变量,只是存在了叫coldold的临时变量里面 objExcelApp.Workbooks.Close objExcelApp.Quit Set ObjEXceLapp = Nothing 到这里为止,我们可以通过上面的语句关闭刚才打开的excel程序了 coldold.Write 最后是把读到的excel值从临时变量coldold中写入它对应的usercodeold1变量中 End Sub ? ? 上面这个例子已经调试通过。网上有很多wincc值写入excel中的例子,一直找不到从excel中读取数据到wincc中的例子,结合

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档