OPC的应用开发

我不是一个程序员,我也不是专学计算机的,但是我的工作与电脑紧密相关,而且我也喜欢研究一些电脑的东西,我喜欢单片机开发,我喜欢php,但从来不对Visual Studio、Java这类的软件感兴趣。我接触电脑最早是从office入手的,后来接触VB,再接触asp,后来转php。中间也穿插学过c,数据库,lua等。最喜欢用还是php。

这两天突然有了个想法,把opc的数据不通过Dcom,通过web的方式来访问,这就是需要把OPC DA的数据转成OPC XML DA,这样就可以通过网络访问了。协议开放,跨平台什么的都不是问题。

所以,开始着手准备写这么一个东西了,先是看了asp调用dll文件的编程方式,但是如何引用一个dll呢?我找不出一个dll在引用时用什么字符串来确定这个dll,随后就放弃了。就想到用asp.net来做,这个网上有人说到这样的思路,应该可以,那就开始准备这样做了。

我的系统是xp,我下载了vs2005,太高版本需要.net的版本高,我系统了已经可以运行.net2.0了,这个应该是配合的。

网上c#读取opc的例子还是不少的,搬来调试,读到数据还是很顺利的。转到web后,调试也很顺利,搞清楚了怎么浏览,怎么同步读取等问题。但是我后边想要输出为json,已经格式化输出xml的时候,问题来了。xml是微软这个软件里主推的一个技术,输出的xml惨不忍睹。json查了下,需要第三方一个dll,但是准备序列化的数据时才发现,用php的思维来处理c#,真是会被气死的,太难用了。搞了一下午,最后放弃了,我还是自己手动拼接来做了json的输出。最后一切都基本完成后,放到iis里,问题来了,权限问题,导致iis访问不了opc的Dcom,需要对opc的dcom权限进行设置,设置完也不一定可以马上就用,重启一下试试。

OPC

附件包含的内容

asp.net访问OPC的代码、DLLEXP软件,可以分析dll里都有哪些函数、opcdaauto.dll、可能以后会用到的newtonsoft.json,处理json的dll。

asp.net包含的程序入口:
default.aspx,程序指定目录后返回所有item值。
item.aspx,返回指定item的值。
service.asm,以webservice的形式访问opc服务。

此条目发表在待分类分类目录。将固定链接加入收藏夹。