勇哥注:
转载知乎的回答,能涨一些见识。。。
(一)
只能C#。
这个问题的重点在于,上位机存在的根本价值是什么?
是为了有个UI交互界面吗?
下位机用个ESP32+当Server,AP模式,搞个B/S架构+
完全不用上位机,直接html+css,照样能搞出UI界面。
有个浏览器就能用,电脑、手机各种系统随便跨。ESP32白带Wifi,只要搞个内网穿透,就能通过HTTP+、MQTT+等网络协议远程操作GPIO+.
如果你只是为了有个操作界面玩GPIO,这不比上位机牛逼多了?还搞哪门子上位机?
既然这么牛逼,为啥没干死上位机呢?
因为上位机的核心价值,根本不是UI界面,而是跟各种工控软件进行对接,在工控软件与下位机之间搭建桥梁。
比Halcon+、VisionPro+、Matlab+、Mathematicat、WinCC,亦或是UG+、Catiat,甚至是
Unity3D+.
这些软件行业不一样,用途不一样,技术实现也不一样。
而它们唯一的共同点,就是全都可以对接C#。
所以,搞上位机,就是为了用C#。
如果你觉得自己不需要C#,那你首先应该思考一下,自己真的需要上位机吗?合宙ESP32单片机开发板,某宝9.9元包邮了解一下。
先确定需求,再选择技术。而不是先选好技术,再找需求。
你知道能运行在浏览器上的编程语言,并非只有JS一种吗?Python、C语言、VB、甚至C#,都有运行在浏览器上的方案。
为啥你不用Py、C语言、VB、C#搞前端,却非要用JS呢?
根本原因在于,那些语言虽然能在浏览器上运行,可它们没有VUE、React。
那么同理,JS有Halcon、VisionPro吗?
(二)
C#+是最方便的,有这个行业一切需要的东西
从通讯库,到图像处理库,到工控专用界面库,全都有
反正工控的相关品牌不管高端还是国产,大多数开发软件都是跑在windows上的,用的数据库也基本是sql server+,要么access,像我们必用的西门子博途+和PCS7+,只能跑在windows上,二次开发啥的例子也都是给的C#的源码
当然你想用is+vue也没问题,只不过web要搞工控,总归也得后端配合的,后端还是C#最方便
有个node-red+就是基于web的,不过他的应用范围不太一样
总的来说,工控要么用plc+品牌方的技术,要么用已经找得到协议或者有二次开发的技术,要么就是通信协议彻底出来了,可以用任何语言编写了,那就可以用任何东西开发,比如通信网关,理论上C# java go py都没问题,这时候.net效率高,速度快
只不过这个行业本来就没多少人,你指望靠自己支撑起一个东西来太累了,能用现有的就用现有的
就像很多搞iava的要来和plc通信,能用的通信库还是得找hsl+,而hsl的C#版本才是最全最稳定的,很多搞java的过来还是会碰点壁的
通讯库:hsl,opc ua+官方,s7plus+之类的,还有一些sdk是COM组件,C#起码能用
图像处理:opencvsharp封装的还是很不错的,可以拿出指针直接用,效率很高
Halcon+、VisionPro+、海康,这些商业的,也有大量sdk是C#最方便用的
界面库 measurement-studio+ 这是labview+的公司提供给wpf winform+的一套高级界面库,可以轻松结合labview级别的界面等东西和C#开发
hslcontrols 自己开发上位机适合使用和入门学习自己做控件的一个库
locomp 这个比较坑
还有很多通用界面库,开发比较低级的上位机没啥用,但是要开发企业级别的MES啥的,还是很实用的
相比vue is这种还得前后端分离的模式,其实winform wpf配合这些库会快很多很多
还有数字孪生,工业仿真,让三维场景和现实同步,u3d+在这方面还是很擅长的,马上要出一个umt组件。当然三维还有很多别的方案,但是u3d是最平滑、灵活、成本低、案例多而且潜力大。threejs+方案画质差,受限多,u3d也可以发布到web呀,factoryio是最简单的但是没有潜力了,用更厉害的UE和unigine引|擎的话,小企业hold不住,不平滑。
js vue方案,低成本触摸屏不可能覆盖到,其他地方性能够界面也能硬做,但是要真正的工业级别,让你做个DCS咋办?
c++方案,本身成本高,连大公司都很难用c++覆盖每个场景
而C#方案,做这么多事情全跑在一个runtime和语言上,和工业的东西结合最多,自己开发不动就用业内主流的东西二次开发。
然后你就会发现,C#在这个行业是真的通用且横着走,伸缩性很高,从简单到强大几乎都有选择很适合成长型公司使用
勇哥注:
除以上这些说法外,我补充几点。
一个很重要的原因是,大部分的工业类型的运动控制卡、采集卡等等,只提供了windows下的基于C++或者C#的开发库。
苹果公司曾经尝试过让设备供应用商用它们的Mac os开发工控软件,最后只能不了了知,这一点就是关键原因。windows在工控和IoT行业中的学习成本超低,微软的亲儿子语言C#是借了此股东风。
微软当年喊出”你们要盗版就盗版我们的...“,现在让全民皆会windows。

