查看原文
其他

连载丨手把手教你winform上位机系列一:认识winform上位机

橘子猫 工控论坛 2023-07-10

导读

上位机是指可以实时监控工业生产现场数据的人机交互设备,屏幕会上显示各种信号变化(液压,水位,温度等)。一般上位机分为工控机(Wincc,组态王,力控工业组态软件),触摸屏(威纶通,台达,西门子HMI等),和Windows桌面应用。


今天要讲的是Windows系统下的Winform桌面应用作为上位机,大家是不是用触模屏和组态软件是总是想实现一些特殊功能但是组态软件本身不支持该功能,但是Winform可以做到你想做的一切,Winform是微软Visual Studio IDE开发平台下的桌面应用开发,我们可以充分利用C#高级语言的优势和灵活性以及高扩展性来开发我们的上位机监控界面,先来个简单Winform项目图:



下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。


上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备(温控器,伺服电机,步进电机,变频器,电磁阀等)。下位机实时读取设备状态数据(一般模拟量,如测温热电偶,电机速度,开关量等),转化成数字信号反馈给上位机。一般来说上下位机都需要编程,都有专门的开发系统。


上下位机如何通讯,一般取决于下位机,通常上位机和下位机通讯可以采用不同的通讯协议,上位机根据下位机硬件支持的通信协议,可以有RS232的串口通讯或者采用RS485串行通讯。当用计算机和PLC通讯的时候,不但可以采用传统的串行通讯,还可以采用更适合工业控制的双线的PROFIBUS-DP通讯,或者是Modbus通信协议,以及通过第三方OPC服务器来进行数据通信。


知道了上下位机接下来让我们先来了解一下我们的上下位机开发环境:


1.西门子博途V14 :plc编程软件



2.微软VisualStudio2012:Winform上位机编程



软件的获取和安装可以百度一下,在此跳过,因为我们的重点是上位机编程。

安装好软件以后,接下来我们写一个简单的demo案例来体验一下winform


1,新建winform项目


打开VS2012软件 点击【文件】--》【新建】--》【项目】



选择Windows--》Windows窗体应用程序,自定义项目名称



这里我们修改项目默认名称为PLC控制



建立完项目后进入项目开发里了



工具栏:提供各种基本控件(对应触模屏来说控件就好比是按钮,文本框,下拉菜单,报表等等)


项目管理:可以理解为创建的窗口,配置的文件,引用的资源文件的目录索引

控件属性:当你选中某个控件时会在右下角显示当前控件的各个属性,可以进行修改属性,比如设置按钮开关的颜色,文本框背景色,字体大小等等。


具体内容在后续文章会一一详细讲解,今天的任务是认识上位机好了,让我们先建立一个简单的窗体界面吧!



通过拖拽窗体右下角使窗体达到你想要的大小,接下来拖拽工具栏里的butoon按钮,



拖拽完成后单击窗体的button1按钮,右下角属性弹出



修改按钮显示内容text为LED 



使用相同的方法添加一个文本标签label到窗体并将文本修改为灯泡,并在属性里设置背景色backcolor为红色



接下来我们按F5模拟一下



界面搭建完成,接下来的内容需要编程实现了:我们先来实现一个简单的led开关功能,当我们点击led按钮时灯泡亮起来变为黄色,再点一次led按钮灯泡熄灭变为红色,如此就实现了一个开关控制灯泡的上位机了


接下来跟着我一步步操作:


1.双击led按钮

 


现在进入了后台编程,led按钮事件就是当你点击按钮时触发的一个函数,我们现在需要将我们的逻辑功能写在这个函数里面,回想下我们要实现的是不是led按钮切换灯泡开断,在界面上反应出来就是led点击切换灯泡背景色,好了,现在开始编写逻辑。


编程要养成好的代码习惯,所以我们需要给我们的led和按钮取名字,什么?不是已经通过text属性修改了吗?怎么还要改,oh,no,那是显示文本不是控件名称,我们要做的是修改控件名称,如下图,好了,将led按钮也改好,不要使用中文命名,如果英文不好可以使用拼音字母命名,比如dengpao 



改好控件名称以后,添加如下代码,



这时候如果你有c语言基础应该是能看明白,什么看不明白,ok,已经注释好了,什么还不明白?现在你可以买一本C#入门书籍,先了解基本的语法了。


我们再来运行我们的程序,F5按下



不停的单击led你会看见灯泡的背景色在红色和黄色之间不停的变换,也就相当于灯泡的不停开断,界面部分到此结束。


下一次我会给大家详细讲解如何编写plc灯泡开断(这个好像大家应该都会),划重点了啊!下一次我们的重点是如何将led按钮和灯泡与plc进行通信,并且真实的控制灯泡的亮灭。谢谢大家阅览,有什么好的意见和补充欢迎各位前辈指正!


*如果你也喜欢这篇分享,欢迎转到朋友圈,转载请后台联系小编*

中华工控网

投稿邮箱:blog@gkong.com

商务合作:0755-26546361

❦欢迎私撩,非诚勿扰

@工控人都爱关注的公众号

▲长按二维码关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存