基于PCHMI操作权限的二次开发(一)添加用户

前言

随着自动化技术的发展,触摸屏和上位机成为了自动化设备的标配。我们平时使用的触摸屏功能单一,随着一体式工业电脑的逐渐成熟,以及工业电脑的价格越来越低和普通工业触摸屏的价格相差不多。
越来越多的客户要求设备具有扫描枪、打印机、相机、激光代码、数据存储、安装第三方软件以及MES接口的功能。工业触摸屏在这方面的处理上稍显力不从心,支持这些功能的触摸屏价格往往很感人,所以工业电脑会逐步取代工业触摸屏。而功能强大的SCADA软件授权费更加感人,而且SCADA软件的更新严重滞后,稍微复杂点的功能你同样要借助第三方高级语言来实现(比如C、VB之类的),甚至很多软件还不支持第三方语言的支持。通过一段时间的了解我找到了免费开源的PCHMI。


一、PCHMI是什么?

PCHMI严格的讲它并不是一款组态软件,也不是一款SCADA软件,而是一个基于.NET构架的DLL文件,开发者可以使用微软的Visual Studio将PCHMI.DLL加载到工具箱里面进行二次开发。开发者不用去学习那些没有用的脚本语言,借助Visual Studio对多语言的支持。比如:C#、VB等。你只需要使用你最熟悉的那门语言,就可以对PCHMI进行复杂的二次开发。然这不是PCHMI的初衷,PCHMI作者已经将工业组态中最常用的功能进行了模块化封装。开发者只需要少量代码甚至不用写代码,通过对控件的拖拽就能完成一个复杂的组态软件的开发。不用专门去学PCHMI,开发过触摸屏软件的PLC工程师就可以直接上手使用。因为PCHMI的使用完全符合其它触摸屏软件的使用习惯。如果你使用过proface、威纶通、GT-Designer等触摸屏软件就能方便的切换到PCHMI上来。PCHMI作者的目的是要让每一位PLC工程师都能够轻松的使用PCHMI在上位机上开发出组态软件,享受调试PLC和HMI都能在同一台电脑上带来的高效率和快感。
PCHMI官网

二、使用步骤

1.引入

PCHMI的用户信息是写入在文本文件内,此次二次开发是要把用户信息保存在数据库以达到更高的安全性。选用的无需部署的轻量级数据库SQLite。

代码如下(示例):

using SqlSugar;
using DbType = SqlSugar.DbType;

2.创建方法获取数据库内用户名

获取数据库内用户名是为了避免用户名重复,创建用户时可以提示“用户已存在”

代码如下(示例):


            try
            {
                SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
                {
                    ConnectionString = "Data Source =" + Environment.CurrentDirectory + "/SystemInfo.db",
                    DbType = DbType.Sqlite,
                    IsAutoCloseConnection = true,
                });

                _userInfo = db.Queryable<Models.UserInfo>().AS("UserInfo").ToList();
                uiComboBox1.Items.Clear();
                foreach (var item in _userInfo)
                {
                    uiComboBox1.Items.Add(item.UserName);
                }

            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message);
            }
  

2.增加按钮事件

按下增加按钮将用户信息些写入数据库

代码如下(示例):


             try
            {
                if (UserName.Text == "")
                {
                    ShowErrorTip("请您输入用户名");
                    return;
                }
                if (PassWord1.Text == "")
                {
                    ShowErrorTip("请您输入密码");
                    return;
                }
                if (PassWord1.Text != PassWord2.Text)
                {
                    ShowErrorTip("您两次输入的密码不一致请重新确认");
                    return;
                }
                if (uiComboBox1.Items.Contains(UserName.Text))
                {
                    ShowErrorTip("用户名已存在,请重新输入");
                    return;
                }
                if (int.Parse(Level.Text) > 8)
                {
                    ShowErrorTip("请选择正确等级");;
                    return;
                }
                SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
                {
                    ConnectionString = "Data Source =" + Environment.CurrentDirectory + "/SystemInfo.db",
                    DbType = DbType.Sqlite,
                    IsAutoCloseConnection = true,
                });
                Models.UserInfo userInfo = new Models.UserInfo();
                userInfo.UserName = UserName.Text;
                userInfo.Password = PassWord1.Text;
                userInfo.Level = int.Parse(Level.Text);
                db.Insertable(userInfo).AS("UserInfo").ExecuteCommand();
                ShowSuccessTip("添加新用户成功!");
                GetUserName();
                UserName.Text = PassWord1.Text = PassWord2.Text = "";
                Level.SelectedIndex=0;
            }
            catch (Exception E)
            {
                MessageBox.Show(E.Message);
            }
  

增加用户页面如下增加用户窗口

总结

以上就是今天要讲的内容,本文仅仅简单介绍了对PCHMI的简单的二次开发,通过对数据库内保存的用户等级赋值给PCHMI的当前权限来实现权限操作,同时PCHMI提供了大量能使我们快速便捷地处理PLC数据的函数和方法。希望接下来能和小伙伴们共同维护好PCHMI。

Visual Graph是套完整的图形编程语言,能够非常方便地建造各种基于图形的界面, 制作各种行业专用的图形控件,还可以制作丰富多样的报表。她能够和其他开发语言实现互相调用,弥补这些语言在图形(或报表)处理方面的不足。曾用她独立开发完成容量达200兆的电力调度自动化系统!用她开发的报表生成系统非常酷,能在预览界面下自由实现编辑,能有无数级别Undo和Redo,完全中国式! 软件的特点是: 、丰富的制图功能: 能画折线、矩形、椭圆、圆弧、文字框等最基本图形元件,具备简单的开放性接口,能插入其他编程语言中的各种可视化组件,诸如按钮、列表框、图片等。图形单元具有多种可变属性,线条的颜色、类型、宽度、箭头;背景的颜色、网纹;文字框的字型、字号、颜色、下划线类型、四边的类型、文字横向、纵向的对齐方式。编辑能力包括移动、剪贴、拷贝、粘贴、删除、层次、智能排版等,并具有多级Undo和Redo功能。表格功能包括分割、合并文字单元、插入、删除表格行、丰富的查找与替换、智能斜线、多种数字修饰方式、多种序列填充模式、把组文字框定义成数组方便计算。视图能力包括窗口无级缩放、用来方便单元定位的栅格、放在工作区内的打印纸可以方便地改变放大率和打印区域。二、中国式的表格特点: 表格是典型的中国式,不同于国外电子表格,这里没有行列的概念,而代之以“单元组”的概念,不论其中的单元是否在同行、同列,表中任何组单元都能用鼠标拖动到其他位置,单元组间可以建立任何复杂的算法,所以处理中国式的复杂表格例如表中套表最为简单。在表格被插入具体应用程序中后,仍然允许编辑某些文字单元。图形无级缩放,无需“模拟显示”,完全所见所得的编辑见面。可以用鼠标拖动打印纸,改变放大率和打印区域。三、能够开发基于图形的控件: Visual Graph能够轻松制作各种图形元件,并把它们放入元件库中以便重复使用,通过传递系列数据参数,改变元件的反应。四、强大的编程能力: 能够编写各种算法,能够处理鼠标、键盘消息。例如在视图文件初始化时调用OnCreate、释放时调用OnDestroy、单击左键时调用OnClick等等。这里所用的语言采用最古典、最简单的语法结构,具有简单的数据类型,内置上百个常用函数(数学运算、图形、字符串、系统控制等),此外支持外挂函数库,使它能够直接调用其他开发环境提供的丰富功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值