物联网上位机开发(上位机这样玩,才有意思)

Posted

篇首语:少年乘勇气,百战过乌孙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了物联网上位机开发(上位机这样玩,才有意思)相关的知识,希望对你有一定的参考价值。

物联网上位机开发(上位机这样玩,才有意思)

自动化行业,正在慢慢往软件行业靠近。

很多PLC工程师也开始慢慢意识到,掌握一门编程语言,变得越来越重要。

那么PLC工程师学会编程之后,会是一种什么样的体验?

我觉得最直接的体验就是:原理性的东西懂得更多,技术栈更全面,可以自己独立完成项目评估、制图、选型、PLC程序开发调试,到上位机开发,甚至于更上层的WEB端、移动端。

言归正传,本文主要是分享一个工业现场常用的运动控制案例,从硬件选型到程序设计,再从本地调试到上位机开发调试。

这个案例算是一个比较简单的案例,但是可以有效地将PLC与上位机结合起来,对于初学者来说,是一个比较适合的练手项目。

1、硬件选型

控制器:西门子200Smart PLC,型号为ST20(DC-DC-DC)

驱动器:步进驱动器

电机:42mm步进电机

限位:3个限位开关,分别对应原点、左限位、右限位

平台:单轴模组

按钮指示灯:启动、停止、运行状态、3个行程开关(模拟完成信号)

2、硬件接线图

3、PLC程序开发

S7-200 Smart PLC运动控制需要使用运动控制向导来实现,核心程序如下:

4、上位机程序开发

(1)I/O表:PLC程序编程中,会预留上位机接口,上位机I/O表如下所示:

(2)界面设计:上位机UI界面设计

(3)功能实现:上位机主要包含实时状态与数据监控、速度及位置参数设置、系统日志显示、通信参数设置。

  • 实时状态与数据监控

本案例与西门子PLC之间的通信方式采用S7通信,使用开源通信库s7.net来实现,基于多线程实现数据的实时采集,并结合实际I/O进行数据解析。

        private void PLCCommunication()                    while (!cts.IsCancellationRequested)                            byte[] result = plc.ReadBytes(StoreType.DataBlock, 1, 0, 23);                if (result != null && result.Length == 23)                                    this.Invoke(new Action(() =>                                            //这里进行实时状态更新                    ));                    Thread.Sleep(10);                                    
  • 速度及位置参数设置

参数设置采用独立的设置界面,通过窗体传值来实现。

代码如下所示:

        /// <summary>        /// 设定值        /// </summary>        public string setValue = string.Empty;        private void btn_Set_Click(object sender, EventArgs e)                    this.setValue = this.txt_SetValue.Text;            this.DialogResult = DialogResult.OK;            this.Close();        
  • 系统日志显示

系统日志基于ListView控件开发,实现日志、报警、警告三种不同状态区别显示,可同时存储至数据库,便于后续追溯。

        private string CurrentTime                    get  return DateTime.Now.ToString("HH:mm:ss");                 //写入日志        private void AddLog(int index, string log)                    if (this.lstInfo.InvokeRequired)                            this.lstInfo.Invoke(new Action(() =>                                    ListViewItem lst = new ListViewItem(CurrentTime, index);                    lst.SubItems.Add(log);                    this.lstInfo.Items.Insert(0, lst);                ));                        else                            ListViewItem lst = new ListViewItem(CurrentTime, index);                lst.SubItems.Add(log);                this.lstInfo.Items.Insert(0, lst);                    
  • 通信参数设置

通信参数为系统参数,采用Winform的Settings来进行配置存储,简单快捷。

界面设计如下所示:

代码如下所示:

        public SaveDefaultSettingDelegate SaveDefaultSetting;        private void btn_Set_Click(object sender, EventArgs e)                    CommSet set = new CommSet();            try                            set.IPAddress = this.txt_IPAddress.Text;                set.CPUType = this.cmb_CPUType.Text;                set.StoreTime = Convert.ToInt32(this.txt_StoreTime.Text);                set.AutoStore = this.chk_AutoStore.Checked;                        catch (Exception)                            MessageBox.Show("请检查数据格式是否正确","格式错误");                return;                        SaveDefaultSetting(set);            MessageBox.Show("配置成功,立即生效", "配置成功");            this.Close();                                                          

5、写在后面

近几年, 随着越来越多的设备开始加入IIoT 网络(Industrial Internet of Things,工业物联网简称IIoT),IT与OT之间的界限将逐渐消失,直到成为一个或相同的系统为止。

所以,越来越多的电气工程师开始转型上位机开发。因为在已有电气技能的基础上,如果掌握了上位机开发技能,薪资达到20K,甚至30K,都会变得更容易。

需要这个小项目资料的同学,可以在评论区留言或者私信我联系方式,相关的资料会给到你。

相关参考

开发一个系统软件需要多少钱(采集数据上位机软件开发多少钱?需要啥技术?)

...采集是指对设备被测的模拟或数字信号,自动采集并送到上位机中进行分析、处理。数据采集卡,即实现数据采集功能的计算机扩展卡,可以通过USB、PXI、PCI、PCIExpress、火线(1394)、PCMCIA、ISA、CompactFlash、485、232、以太网、各...

消防主机的上位机故障(人民艺起评:深化娱乐场所“放管服”改革,释放红利)

来源:人民网-观点频道原创稿近日,文化和旅游部印发《文化和旅游部关于修改〈娱乐场所管理办法〉的决定》,进一步深化娱乐场所“放管服”改革,持续释放改革红利。“一张一弛,文武之道”。奋斗的人生才是幸福的、...

消防主机的上位机故障(人民艺起评:深化娱乐场所“放管服”改革,释放红利)

来源:人民网-观点频道原创稿近日,文化和旅游部印发《文化和旅游部关于修改〈娱乐场所管理办法〉的决定》,进一步深化娱乐场所“放管服”改革,持续释放改革红利。“一张一弛,文武之道”。奋斗的人生才是幸福的、...

松下伺服与上位机通讯(西门子S7-200SmartPLC运动控制(三)松下A6伺服使用介绍)

各位老铁好,本章主要介绍松下A6伺服驱动器的使用方法,新加入的朋友可以先观看往期文章以便更好的理解小编所讲的内容,下面进入正题: 一、驱动器接口介绍:XA:驱动器供电口(一般交流220V)XB:电机动力线接口X6:电...

数字万用表哪家好(Keithley数字万用表|吉时利多通道数据采集表上位机软件好用吗?)

手持万用表和台式万用表是常见的两种万用表,针对严苛的测试要求,台式万用表能从灵敏度、准确度、宽量程、测量速度、数据传输等方面为测试工程师提供保障。因此,台式万用表也被广泛地应用到设计人员工作台或自动化...

无线接入终端(基于WIFI无线数据采集系统)

...。这些控制器通过预设的通信协议与路由器连接并通信。上位机可以由电脑、平板甚至手机构成,同样以WiFi技术接入路由器。通过编制相应的上位机软件,上位机可实现对各个数据采集控制器的参数查询和控制。2数据采集控制...

数控带锯切纸机(数控系统卷筒纸分切机,分析该设备加工前后的性能和特点)

数控系统卷筒纸分切机,上位机程序设计比较重要。根据计算模型,上位机计算出卷板和卷纸产品的几何参数和工艺参数,并检查送料次数,而后将计算结果发送给下位机。下位机根据上位机的控制参数控制电机和液压缸运动,...

松下伺服驱动器原点设置(云工控资讯:如何实现松下伺服电机的上位控制?)

...现电子凸轮,相位同步等等高级运动控制功能等脉冲控制上位机通过发送脉冲到伺服驱动器,来实现控制。在这种方式下,用

松下伺服驱动器使用手册(云工控资讯:如何实现松下伺服电机的上位控制?)

...现电子凸轮,相位同步等等高级运动控制功能等脉冲控制上位机通过发送脉冲到伺服驱动器,来实现控制。在这种方式下,用

无功数显表(多功能电力仪表-数显多功能电力仪表厂家)

随着社会经济的发展,科技的进步,互联网,物联网,大数据,自动化,云端化等信息技术的快速度发展,计算机在电力监控方面也得到了越来越广泛的应用,使用多功能电力仪表代替机械式的电力仪表已成了工为自动化的大趋...