西门子提供的最新软件:Simatic Net PC-Software CD 2005为各种组态软件的开发提供了一个统一的平台它建立的PC站既为一些组态软件,如:WinCC、Protol等提供了与PLC的通讯平台也提供了一套编程接口,可使用高级语言编程通过Simatic Net访问PLC数据本文讨论的主要就是这个编程接口,最新版的Simatic NET支持五种编程方式:
<1>、ActiveX控件 提供了一系列数据访问控件,以便于向VB6这种语言使用控件的方式与PLC通讯
<3>、OPC用户接口 这是专门为VC++提供的一种高效编程方式,其灵活程度与执行效率比前面的两种方式均要高得多
<4>、针对微软的.NET平台的OPC用户接口 这也是一种非常灵活的编程接口,不过它针对的是.NET平台其提供了大量的.NET类库,以便於像VC#、库不属于COM库,西门子虽然编写了类库以提供对.NET平台的支持,但这些类库仍然难于编程
里面包含了大量的在托管和非托管區传输数据,因此我们需要在它的基础上再开发一个类库以简化以后的编程,首先在类的开头使用命名空间:
1、 在类的开头部分生名变量
/// 若为true创建成功,否则创建失败
3、 在服务器上添加用于添加Group的函数 ///
/// 若为true添加成功,否则添加失败
// 处理非托管COM内存
4、 向指定的组中添加變量的函数 ///
/// 添加多个项到组
说明:使用该函数时在类的开头,应该先声明整数数据以用于保存由本函数返回的服务器对每一项分配的Item ID号:
5、 向指定组中指定的一系列项变量写入数据的公开方法 ///
/// 一次性写入多个值
6、 编写获取变量值的函数 ///
/// 一次性读取多个数据
//从非托管區封送数据到托管区
通过给类编写上面的几个最重要的函数,我们已经可以读写PLC数据了下面给出例子。
创建一个C#工程添加对仩面开发的类库的引用,并在窗体类的开头声名:
其中的SynServer即为上面开发的类。
<1>、创建服务器接口 在程序初始化处添加:
至此并完荿了数据的通讯,如何只要你把类库开发完善,在它的基础上再开发会异常简单,本人已开发了完善的类库上面的类库只是把最重偠的部分讲解出来,我曾经在网上求助过很多次这方面的知识无人应答。唉!太不容易了等待Simatic NET软件花费了我一个月的时间,然后读几百页的英文文档到开发程序,并测试花费了我一个星期的空闲时间写这篇文章,又花费了我一个晚上的时间不过我还是愿意把这些摸索出来的东西发给大家。
教程之家ICP备案:粤ICP备号;教程來自互联网,如有侵权处理请联系QQ:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。