进行工厂设备数据采集,C#编程语言肯定必须得会的。工业设备的相关类库都是C,C++编写的,JAVA的JNA调用C库还不会用,用C#编程调用C库应该方便点。
然而,现实是调用一点都不方便。安装VisualStudio2019,体积太大了,可能需要20G以上的硬盘空间。我的thinkPad笔记本I5内存8G硬盘500G,已经安装的东西太多,不想再安装大软件了,怕系统拖得太慢,面临费时的优化电脑或重装系统。
在公司服务器Windows Server 2019 上安装了VisualStudo2010,远程桌面上使用,字体大小不会调整,显示模糊不好用。偶然发现有人介绍有VisualStudio2017绿色版,果断下载来看看能不能使用。下载包700+M,安装后不到3G,使用很开心。
安装VS后,按照网友的入门教程,走通了几个示例程序(控制台HelloWorld程序,C++的MFC程序,C#的winforms程序)。总算弄明白了Windows相关的几个常见名词的意义,和之间的区别。介绍几个(自己的大概理解):
- .net 是什么,和以前的Windows编程的区别:VS是新建项目有.net类型程序和不是.net类型程序两类,一个区别是,.net程序是运行在.net平台上,也就是程序是通过.net的虚拟机CLR(微软的通用语言运行时)运行的,非.net项目的程序是直接运行在windows系统上的。我这个VisualStudio2017上通过VB,C#建立的项目都是.net的,VC++建立的程序都是非.net的
- 窗口框架:MFC,winform,WPF:windows的窗口编程框架有这三种,MFC有些年代了,VC++窗口编程只能使用它。其它两个框架是运行在.net上的,VB,C#都可以使用,winform使用简单,适合我这样的临时用来调试程序和设备。主要就是改改界面,事件处理程序内改改代码。wpf还没有用过。
- [StructLayout(LayoutKind.Sequential,Pack=4)]:因为C#程序是运行于.net的CLR上的,所以调用windows直接管理的C库并不容易,又遇到一堆不明白的名称等待了解,包括:托管代码和非托管代码,P/Invoke,互操作封送处理,STRUCT数据对齐,PACK=2,等等,都是关于C#和C函数互操作的。主要处理CRL送到WinAPI和从WinAPI返回的数据的数据类型转换,保证编程中送出和获取到的数据的正确性。
看了一堆资料,终于回到工作轨道上来,测试使用FANUC机床的FACOS1程序库。
工业相关的软件和资料比较难找一点,不知道是不是因为有利可图,或者版权问题。搜索出来的资料都是CSDN连接,下载都要付费,随说不贵,但是我们不是白嫖惯了吗,就是不想付费。
在Github上找了三个资料比较有效:
- 最好的是wheeliar/FANUC_Focas_API,相关的库,资料,工具程序里面都有
- 还是他的wheeliar/WindowsFormsAppforFanuc,示例程序,可以运行连接机床测试函数库使用方法
- 还有一个Focsa的JNA库我下了还没有测试,准备以后用它把读写机床数据功能整合到Scada-LTS系统内部
现在资料技术准备齐了,下一步考虑联网实施,编程采集细节了(怎么按时把需要的数据搞到Scada系统)
OVER
标签:C#,编程,程序,C++,采集,FANUC,准备,net From: https://www.cnblogs.com/wtjjttyy/p/17143190.html