工业控制中,上位机软件必不可少的是和PLC通讯,方式有很多种,很常用的一种是OPC,关于OPC通信协议或者是通信标准,可以自行百度,不多写了,主要将VB.NET 和PLC通讯的过程记录下来,以免时间太长忘掉。

因为是和PLC用的是西门子,很长一段时间用的都是西门子提供的OPC软件,OPC服务器也是西门子提供的程序,如下图SIMATIC_NET  PC Software V13 SP2

后来听说西门子的OPC通信比较慢,而且安装比较复杂,但是一直没有好的替代,直到一个偶然的机会了解到KepServer作为通信的服务器。如下图KepServerEx-6.4

重要的概念

1:OPC服务器,一直觉得服务器这个东西很虚,没有做过服务器,理解不了服务器的概念,这个opc服务器就是为opc通信提供底层通信支持的,也就是说有了这个服务器,我们不用考虑我们需要通信的PLC是什么,也不用考虑具体的通信的细节等等,甚至不用考虑通信的下位机是不是PLC,只要KepServer这个OPC服务器支持。(也就是说通信的下位机支持OPC通信协议,并且KepServer有或者能找到对应的驱动程序)也就是说,有了opc服务器,我们只要和服务器通讯就可以了。具体PLC的选择,在服务器中进行,程序不要考虑。

2:X86和X64的区别,电脑有32位和64位的区别,对应的程序也有X86和X64的区别。32的意思就是计算机的字长是32个位,那么计算机寻址的范围最大为2的32次方减1个字节,因为计算机指针存储的单位是字节,超出这个范围的内存地址,在计算机的cpu中已经无法表示了。32位的字长只能存储最大2的32次方减1的地址,也就是4294967296个字节除以1024等于4194304个KB再除以1024等于4096个MB等于4G,超出这个值的地址,CPU无法识别,所以32位的电脑,增加内存超过四个G意义也不大。但是64位的电脑就不一样了。同样按照上面的计算方式,64位的寻址大小可以达到2的64次方-1位。大概是16,777,216T,也就是一千六百多万T。

说多了,总结一下知识也是自己学习,因为之前的物理内存的限制,计算机以32位的居多,因为内存很少有超过4个G,那么64位字长太浪费。现在的内存,随随便便八个G,所以64位的计算机在将来会越来越多。

再说程序,一般来说64位的计算机可以运行32位计算机的程序,因为寻址是兼容的,怎么做运算都不会冲突。但是针对64位计算机生成的程序难以在32位的机器上运行。因为32位的机器无法表示4g以外的地址。

3:  康耐视的Visionpro不是这样 ,至少我试了8.3的是不行的,32位的程序正在64位的机器上也会报错一大片。安装可以安装,但是调用DLL的时候就会报错,程序会运行不了。这就会造成一个问题,运行VisionPro的64位电脑再连接KepServer服务器就会出现冲突,opc会提示“没有注册工厂类”那么就要想别的办法,我看前辈用的方法是做两个程序,然后用一个dat文件进行通讯,一个程序负责和KepServer通讯,一个用来处理VisionPro视觉。

4:OPC服务配置:KepServer的安装过程比较傻瓜,Next就可以搞定,添加通道,添加设备网上也有很多教程。以西门子S7—1200为例,主要的两个,一个是选择驱动程序,这里选择TCP/IP  ,还有UA DA等方式,还没有测试。

另外一个就是设备的IP地址,192.168.2.5

选择型号 ,填写IP地址之后就可以添加通道了,

这样服务器就配置完成了,如果连接有PLC,可以让值改变测试一下有没有成功。点击如上图所示的测试。

点击Quick Client 找到我们添加的Item,如上图,在没有连接成功的情况下,会显示质量为:Bad   Update  count  为1,如果连接成功,PLC相应值变化,Update的个数也会发生变化。

5:开始客户端的工作,

5.1 :引用DLL

5.2创建OPC服务器

5.3创建组和Items

5.4或者变化值onchang

5.5写入值

6,opc很重要的是服务器,组,items ,item的概念,是层层向下的,上面的代码段并不是最简洁的代码段,还有别的方法更方便的调用。需要再去研究,有很多不足之处,我也是参考别人的代码,感谢热心分享的大神。

7,客户端程序引用的dll都是从网上下载的,一直再找64位版的,可惜一直没有成功,下载的标准是64位版,但是程序还是会出错。如果有64位程序成功的,希望也可以指点我一下。交流加QQ243361696

8,调用的过程中,程序会提示没有注册工厂类……这个时候就要注册dll,方法也能百度到。

VB.net或者C# 通过kepserver和西门子PLC通信的就是这样,验证成功了。但是有几个问题没有解决

1:64位的程序调用问题,应该是DLL不支持可以用32位的DLL封装64位的程序吗?还不会弄这个

2:代码简洁问题,已经在group中添加了item,写数据或者捕捉onchang的时候应该就不用重复添加了

后面安装了一下LabView ,发现lab的OPC 服务器和 KepServer简直一模一样 ,网上查到说Labview就是买的KepServer的版权。Labview叫做DSC,过几天也会写一篇博文记录一下,通信的过程,以免后面忘掉。

VB.NET和PLC通讯,KepServer作为OPC通讯的服务器相关推荐

  1. OPC通讯开发简介——基于WTOPCSVR的OPC服务器端和基于WTCLIENT的OPC客户端开发

    OPC通讯开发简介--基于WTOPCSVR的OPC服务器端和基于WTCLIENT的OPC客户端开发 说明 一.OPC技术背景及介绍 二.OPC通讯的流程(OPC经典架构) 三.OPC标准官方文件部分变 ...

  2. Matlab和PLC的OPC通讯

    Matlab和PLC的OPC通协议配置教程 目的和意义 matlab下OPC的配置 OPC协议简单介绍 实现OPC DA过程数据访问必须遵循以下步骤: Matlab下OPC相关查看和安装 Window ...

  3. labview+PLC程序+OPC完整项目程序Labview和西门子PLC smart200 OPC通讯仪器串口通讯

    labview+PLC程序+OPC完整项目程序Labview和西门子PLC smart200 OPC通讯仪器串口通讯 全套项目资料,包括Labview 程序,研华工控机,西门子Smart 200程序, ...

  4. Labview和西门子PLC smart200 OPC通讯仪器串口通讯

    Labview和西门子PLC smart200 OPC通讯仪器串口通讯 全套项目资料,包括Labview 程序,研华工控机,西门子Smart 200程序,电气原理图,元器件清单,详细注释 Labvie ...

  5. labview串口,网口,DSC可用OPC通讯链接三菱欧姆龙西门子等PLC

    labview串口,网口,DSC可用OPC通讯链接三菱欧姆龙西门子等PLC. 通过NI-OPC控制三菱,欧姆龙西门子等各种型号PLC 编号:7450645066968702听雪无声.

  6. opc读取ab的plc数据_ABPLC通过OPC方式通讯的连接方法

    A B P L C 通 过 O P C 方 式 通 讯 的 连 接 方 法 Rockwell Automation 的 A-B PLC 是一个着名的可编程控制器产品.其产品体系基本上涵盖了工业控 制产 ...

  7. labview与PLC通过OPC通讯

    LabVIEW使用OPC与PLC通信是十分便捷的,下面讲一下LabVIEW与PLC之间如何通过OPC通信. 1.软件的准备,对于初次安装的LabVIEW,需要在NI Pacage Manger中另外下 ...

  8. 【应用】OPC 通讯协议

    OPC 通讯协议 OPC 通讯协议基础 OPC 简介 OPC 与 OPC UA OPC 逻辑对象模型 OPC 通信方式 Java 实现 OPC 的方式 Java 实现 OPC-client OPC-D ...

  9. opc ua 服务器模拟_西门子S71500的OPC通讯组态

    JZGKCHINA工控技术分享平台 本文将介绍西门子S7-1500与PC机的OPC通讯组态. 一. 打开TIA软件,添加CPU 1511-1和常规PC station站 二. 在PC station站 ...

最新文章

  1. 非对称加解密,私钥和公钥到底是谁来加密,谁来解密?
  2. C++类的使用(四)—— 继承
  3. 21秋期末考试财务会计(一)10166k2
  4. Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc) (转载)
  5. 要素集获取要素_Excel点文件转面要素
  6. 2018 推荐系统总结
  7. [洛谷P4183][USACO18JAN]Cow at Large P
  8. 网络拓扑图(附华为、CiscoVisio图标)
  9. uReport2报表工具的基础使用及注意事项
  10. 动态树专题 WC 2006 Tube 还有范浩强的“动态树好题”
  11. 渗透测试的本质与沉思
  12. 5G通信技术书籍分享(持续更新)
  13. 脉冲神经网络大致流程
  14. python如何拼读英语单词-q开头的英语单词
  15. 04 数据控制语言DCL
  16. 【转载】Linux常用命令大全之文件处理命令(一)
  17. C3P0 连接问题 An attempt by a client to checkout a Connection has timed out.
  18. qt网络编程之使用cookie和ssl
  19. 同是ZooKeeper,你和架构师的理解差在哪里?
  20. java 拆箱与装箱原理

热门文章

  1. 晨读-工作中,为什么契约精神那么重要?
  2. 高中计算机阅卷要求,给考生:了解中考电脑阅卷规则,读完多拿20分!
  3. H5唤醒本地APP(谷歌地图、百度地图等相通)传递数据
  4. Python全局变量及Global关键字( Global variable in Python)
  5. Linux查看硬件信息命令(转)
  6. Linux学习——流刷新定位、格式化输入和输出
  7. AHP层次分析法(Analytic Hierarchy Process)——个人学习笔记
  8. 大整数加减法(基础,细节题型)
  9. aac音频数据的rtp封包过程(android)
  10. 组播反向路径转发RPF