Kepware的OPC server安装包,安装完毕带客户端,还带多种编程语言包括VC++,VB,C#的客户端源代码,可以参考。
opc server端和客户端能在一台机器上运行应该是没有问题的,我用过一些OPC测试软件都很正常,你也可以去下几个试试。要是用的VC++的话,看看你使用完对象后有没有释放。我以前就是这样,每次刷新数据时,都有些对象的内存没有释放,于是系统内存占用就越来越多了。
首先是准备好开发环境,一般测试是在模拟环境中进行,这样比较保险,可以使用一些免费的模拟OPC Server。我这里准备的是Matrikon的模拟服务器,模拟器安装以后。编程环境是VC++ 0,使用200X和2010也都大同小异。为了演示简单,新建一个Win32控制台工程agOPC,新建agOPC.cpp源文件并加到工程里。
我入门时用的是这一本,《OPC服务器与客户端开发指南》,网上应该可以找到。 用VC0 和VB分别讲如何做服务器和客户端,比较基础。pudn上好像可以找到书中配的代码,没有代码还是不方便学的。适合入门系统学习。
1、文字列表可以用EDIT文本框多行显示,也能用LIST那种东西,存成文件用记事本打开看也行。图形显示,就得根据具体数据,设计个绘图的方法,做了。实时更新,就要求串口接收那里是通过串口事件获取数据,单开一个线程来接收数据,然后通知主线程绘图也行。
2、修改你可能使用了RS.ADDNEW方法,才会新增记录,将RS.ADDNEW语句删除即可。
3、把窗口风格设为modal,以接管整个MATLAB的输入,避免用户对其它窗口进行误操作; (2)屏蔽所创建窗口的关闭请求,使得窗口不能被关闭。 当然,窗口大小以及窗口中显示的内容等可根据需要再自行修改,以使得更美观醒目。
4、警告的意思为:警告C4101:e:未引用的局部变量 原因是局部变量的错误使用。你的 f,c,k都是在main()函数里面定义的,然而,你在使用这些变量时是在temp()函数里面,在某个函数里面定义的变量只能在此函数中使用,所以你会产生错误。解决办法为,将这些变量定义为全局变量。问题成功解决。
5、按照上面的思路,我们很容易就能想出下面的两种方法:一,文件法在硬盘上创建一个文件,在文件里设置一个值,根据这个值来判断程序是否已经启动。二,注册表法 在注册表中创建一个键,根据该键的键值来决定是否要启动程序。但是,上面的两种方法,都有I/O操作。我觉得这不是最好的方法。
6、CX-P软件左侧工程栏中的设置,出现对话框,然后在其上位机链接中设定端口的通讯选项。 编程后自动连接,在CX-P软件菜单PLC下,选择自动在线。
在运行西门子STEP7-Micro/WIN编程软件后,单击左侧“视图(View)”【又译“查看”】菜单中的“通信(Communications)”按钮,进入“通信(Communications)”的属性面板。后面的步骤与“方法1”一致。方法3 在运行西门子STEP7-Micro/WIN编程软件后,双击“项目(Programmas)”中的展开项CPU。
添加通道与连接设置 添加驱动连接,设置参数。
在PLC配置中,务必勾选允许远程对象的PUT/GET通信访问。 访问DB块时,须将优化的块访问属性去除。 使用PLCSIM-Advanced仿真环境时,确保整个解决方案的属性中,块编译时支持仿真选项被选中。 确保读取的地址存在于PLC内部。 实现通信主要分为基础通信和高级通信两个阶段。
不知道你有没有学过VC,如果你学过VC或者VB那么就简单多了。西门的PLC提供一个软件包叫做 Prodave,编写上位程序调用Prodave中的DLL函数就可以实现VB(VC)与PLC通讯。通讯成功之后就很简单了,把PLC数据读出或者向PLC写数据都行了。
采用以太网编程访问plc,其实又可以分为两种:一种是socket接口,需要在plc里面编程进行收/发,大概是fc5/fc6吧,印象不深了,当然plc里面要定义一个connection,填好地址、端口号之类的信息,这个对于熟悉西门子工业通讯的人是很easy的事情。
建议先把VC开发弄通,VB上手很快的。两个都会之后就看项目情况选择吧。单片机通讯软件开发一般都是用串口或者USB接口来通讯的,程序上只要和两者的驱动打交道就可以了,用C++开发很方便。如果做的深的话也有可能要自己写硬件驱动,那VB就无能为力了。说的很详细了。加油学吧!有问题再交流。
都可以,VB方便,开发速度快。VC效率高,但开发速度慢。作为工控界面,对效率要求并不太高,但是对软件开发速度要求较高,可以考虑使用VB。但主要取决于软件工程师使用什么语言,一般设备方面的话,软件工程师并不一定多么充足。
完全可以。组态软件就是开发出来的,但不一定是用Visual Studio,市场上有很多开发软件的工具,VS只是其中一个。VS可以制作画面,相当于windows的界面一样的,通信也是没有问题的,都可以开发,至于使用哪种语言开发,现在最常用的是c#、JAVA等。
VB做简单的界面比较好,上手快、简单;复杂点的工程之类的用VC++好,尤其是图形化界面,做起来比VB容易,建议用VC++,以后有时间学习嵌入式(ARM)的时候也能用到,希望能够帮到你。
第几个字节开始表示的是转速数据等等,当上位机和下位机都采取同一个数据格式进行通信的时候,就是所谓的协议。 然后上位机利用你的Can的相关API,进行数据收发,同时用UI显示出来。但是要注意其他一些细节,例如Can报文收发底层驱动上,是否采用了缓冲机制,最好是有缓冲,不然容易丢包。
所谓的上位机、下位机是人为设定的,在使用两片单片机以上时,主要的即为上位机,其余从的即为下位机。