From 0011f4a56a2de7969925e59ea9d707ef243ab5a5 Mon Sep 17 00:00:00 2001 From: dathlin Date: Tue, 6 Jun 2017 14:22:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 269 ++++++-------------- 软件系统客户端模版/screenshots/client12.png | Bin 0 -> 61735 bytes 2 files changed, 76 insertions(+), 193 deletions(-) create mode 100644 软件系统客户端模版/screenshots/client12.png diff --git a/README.md b/README.md index 38e39e6..0e6517a 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,21 @@ #### 关于HslCommunication.dll

该组件功能提供了一些基础类和整个C-S项目的核心网络的支持,除此之外,该组件提供了访问三菱PLC和西门子PLC的数据功能。

-
-
+

本组件支持常规的整数的数据读写,也支持字符串数据读写,包括中文,以下只是简单的举例,目前已经完成了一个三菱PLC高并发访问的类,具体交流可以通过以下方式联系我

+ +

如果要使用本组件访问PLC,需要引用命名空间,如下

+
+
+using HslCommunication.Profinet;
+
+
+ +三菱详细手册:三菱PLC数据读写手册 + +西门子详细手册:西门子PLC数据读写手册 #### 关于本项目模版

本模版基于.Net Framework3.5+C#7.0开发完成,所以必须使用Visual studio 2017进行开发,低版本的IDE打开项目将出现语法识别错误。有必要说明下为什么使用.Net Framework3.5,这个版本是xp系统比较方便安装的,在企业部署中会相对容易很多,所以如果你的系统也是应用于企业的,那么强烈建议使用3.5版本,该模版由三部分的程序组成:

@@ -22,206 +35,76 @@ ![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/design.png)
-#### 服务器端程序界面如下: -![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/server.png) -功能菜单都在设置中,可以尝试其他操作。 -
+#### 客户端后台登录流程 +
    +
  1. 状态检查,检测服务器的维护状态设置,如果处于维护中,则显示不能登录系统原因。
  2. +
  3. 账户检查,服务器对登录账户全面检查,用户名是否存在,密码是否正确,是否允许登录,并对登录ip,时间,频次进行记录。
  4. +
  5. 版本检查,服务器返回最新的版本号,客户端检测后根据自己的需求选择是否启动更新程序。
  6. +
  7. 参数下载,上述所有检查通过以后,进行运行数据的初始化,比如将公告数据传送到客户端,您也可以添加自己的数据。采用json数据进行封装,客户端解析的时候请参照示例。
  8. +
  9. 上述所有检测通过之后,启动客户端的主界面程序。但凡有一项检测失败,或者参数下载失败,均不允许登录,并且提示相关错误。
  10. +
-#### 客户端的程序界面 -##### 登录窗口 +# 服务器端程序界面如下: +![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/server.png) +
+######下述服务器端的功能说明均来自服务器的菜单点击 + +1. 服务器端的版本控制,更新新的版本号,按照实际需求来更新您的版本号,门牌为【设置】-【版本控制】 +
+![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/server1.png) +2. 服务器端的维护状态控制,比如系统维护阶段,不允许所有客户端登录,门牌为【设置】-【维护切换】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/server2.png) +3. 消息群发,您也可以在代码中自动触发群发,代码参考此处的手动群发,门牌为【设置】-【消息发送】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/server3.png) +4. 账户管理,客户端的界面和这个一致,该管理属于底层的json数据管理,任意更改数据,门牌为【设置】-【账户管理】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/server4.png) +5. 关于本系统,框架版本号以本github发布的版本号为准,门牌为【关于】-【关于软件】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统服务端模版/screenshots/server5.png) +6. 一键断开,如遇到紧急情况,或是切换维护之前,可以选择强制关闭所有的客户端。门牌为【设置】-【一键断开】 + +
+
+
+# 客户端的程序界面 +###### 登录窗口 ![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client1.png)
-##### 主界面 +###### 登录主界面(此处点击了关于菜单) ![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client2.png) -
-
+###### 更改公告,此处没有设置权限过滤,门牌为【管理员】-【更改公告】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client3.png) + +###### 日志查看,本系统集成了非常实用的日志功能,所有的网络组件均支持日志的记录,方便调试。门牌为【管理员】-【日志查看】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client4.png) + +###### 远程更新,成功部署本系统后,支持远程客户端的版本更新,此功能应开发人员拥有。门牌为【管理员】-【远程更新】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client5.png) + +###### 密码更改,当账户需要更改密码时,需要对密码进行验证。门牌为【设置】-【修改密码】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client6.png) + +###### 更新日志,当客户端更新了新的版本后,初次运行程序时就会自动弹出如下窗口,具体的更新内容应该写入到文件中。手动门牌为【关于】-【更新日志】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client7.png) + +###### 反馈意见,人性化的软件允许用户支持提交修改建议,功能使用反馈等。门牌为【关于】-【意见反馈】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client8.png) + +###### 快速注册账号,支持管理员快速注册账号,该界面允许更改。门牌为【管理员】-【注册账号】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client9.png) + +###### 共享文件,本系统支持一个小型的文件共享,包含了上传下载删除过滤。门牌为主界面的【文件数量】 +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client10.png) +![](https://github.com/dathlin/C-S-/raw/master/软件系统客户端模版/screenshots/client12.png) + + +

-# 本网络组件支持使用工业以太网技术访问PLC -

本组件支持常规的整数的数据读写,也支持字符串数据读写,包括中文,以下只是简单的举例,目前已经完成了一个三菱PLC高并发访问的类,具体交流可以通过以下方式联系我

- -

如果要使用本组件访问PLC,需要引用命名空间,如下

-
-
-using HslCommunication.Profinet;
-
-
- -#### 三菱PLC访问数据读写 - -详细手册:三菱PLC数据读写手册 - -##### 初始化对象 -
-
-        private MelsecNet melsec_net = new MelsecNet();
-        private void Form1_Load(object sender, EventArgs e)
-        {
-            //初始化
-            melsec_net.PLCIpAddress = System.Net.IPAddress.Parse("192.168.0.7");//IP
-            melsec_net.PortRead = 6000;//端口
-            melsec_net.PortReadBackup = 6001;//备用读端口,也可以不指定,默认负数,不会切换负数端口
-            melsec_net.PortWrite = 6000;//写入端口,也可以和读取一样
-            melsec_net.NetworkNumber = 0;//网络号
-            melsec_net.NetworkStationNumber = 0;//网络站号
-            melsec_net.ConnectTimeout = 500;//连接超时时间
-        }
-
-
-##### 读写D寄存器数据 -
-
-        private void button1_Click(object sender, EventArgs e)
-        {
-            //读取PLC数据 D6000开始21个字 也即是D6000-D6020 最大长度980
-            OperateResultBytes read = melsec_net.ReadFromPLC(MelsecDataType.D, 6000, 21);
-            if(read.IsSuccess)
-            {
-                //成功读取
-                textBox2.Text = "D6000:" + melsec_net.GetShortFromBytes(read.Content, 0);
-                //textBox2.Text = "D6001:" + melsec_net.GetShortFromBytes(read.Content, 1);
-                //textBox2.Text = "D6002:" + melsec_net.GetShortFromBytes(read.Content, 2);
-                //textBox2.Text = "D6003:" + melsec_net.GetShortFromBytes(read.Content, 3);
-                //textBox2.Text = "D6004:" + melsec_net.GetShortFromBytes(read.Content, 4);
-                //================================================================================
-                //这两种方式一样的,
-                //textBox2.Text = "D6000:" + BitConverter.ToInt16(read.Content, 0);
-                //textBox2.Text = "D6001:" + BitConverter.ToInt16(read.Content, 2);
-                //textBox2.Text = "D6002:" + BitConverter.ToInt16(read.Content, 4);
-                //textBox2.Text = "D6003:" + BitConverter.ToInt16(read.Content, 6);
-                //textBox2.Text = "D6004:" + BitConverter.ToInt16(read.Content, 8);
-            }
-            else
-            {
-                //失败读取
-                MessageBox.Show(read.ToMessageShowString());
-            }
-        }
-        private void button2_Click(object sender, EventArgs e)
-        {
-            short[] values = new short[4] { 1335, 8765, 1234, 4567 };//决定了写多少长度的D
-            //写入PLC数据 D6000为1234,D6001为8765,D6002为1234,D6003为4567
-            OperateResultBytes write = melsec_net.WriteIntoPLC(MelsecDataType.D, 6000, values);
-            if(write.IsSuccess)
-            {
-                textBox2.Text = "写入成功";
-            }
-            else
-            {
-                MessageBox.Show(write.ToMessageShowString());//显示失败原因
-            }
-        }
-
-
-##### 读写M寄存器数据 -
-
-        private void button100_Click(object sender, EventArgs e)
-        {
-            //后台循环读取PLC数据 M200开始10个字 也即是M200-M209
-            OperateResultBytes read = melsec_net.ReadFromPLC(MelsecDataType.M, 200, 10);
-            if (read.IsSuccess)
-            {
-                textBox2.Text = "M200:" + (read.Content[0] == 1 ? "通" : "断");
-                //textBox2.Text = "M201:" + (read.Content[1] == 1 ? "通" : "断");
-                //textBox2.Text = "M202:" + (read.Content[2] == 1 ? "通" : "断");
-                //textBox2.Text = "M203:" + (read.Content[3] == 1 ? "通" : "断");
-                //textBox2.Text = "M204:" + (read.Content[4] == 1 ? "通" : "断");
-                //textBox2.Text = "M205:" + (read.Content[5] == 1 ? "通" : "断");
-                //textBox2.Text = "M206:" + (read.Content[6] == 1 ? "通" : "断");
-                //textBox2.Text = "M207:" + (read.Content[7] == 1 ? "通" : "断");
-                //textBox2.Text = "M208:" + (read.Content[8] == 1 ? "通" : "断");
-                //textBox2.Text = "M209:" + (read.Content[9] == 1 ? "通" : "断");
-            }
-            else
-            {
-                //失败读取,显示失败信息
-                MessageBox.Show(read.ToMessageShowString());
-            }
-        }
-        private void button5_Click(object sender, EventArgs e)
-        {
-            //此处写入后M200:通 M201:断 M202:断 M203:通
-            bool[] values = new bool[] { true, false, false, true };
-            OperateResultBytes write = melsec_net.WriteIntoPLC(MelsecDataType.M, 200, values);
-            if(write.IsSuccess)
-            {
-                textBox2.Text = "写入成功";
-            }
-            else
-            {
-                MessageBox.Show(write.ToMessageShowString());
-            }
-        }
-
-
- -#### 西门子PLC访问数据读写 - -详细手册:西门子PLC数据读写手册 - -##### 初始化对象 -
-
-        //西门子PLC读取块
-        private SiemensNet siemens_net = new SiemensNet();
-        private void Form1_Load(object sender, EventArgs e)
-        {
-            siemens_net.ConnectTimeout = 500;//超时时间
-            siemens_net.PortRead = 2000;//读端口
-            siemens_net.PortReadBackup = 2002;//备用读端口,也可以不指定,默认负数,不会切换负数端口
-            siemens_net.PortWrite = 2001;//写端口
-            siemens_net.PLCIpAddress = System.Net.IPAddress.Parse("192.168.0.6");//ip地址
-        }
-
-
- -##### 读写M寄存器数据 -
-
-        private void button3_Click(object sender, EventArgs e)
-        {
-            OperateResultBytes read = siemens_net.ReadFromPLC(SiemensDataType.M, 100, 2);
-            if(read.IsSuccess)
-            {
-                textBox4.Text = "M100:" + read.Content[0] + " M101:" + read.Content[1];
-                bool M100_0 = (read.Content[0] & 0x01) == 0x01;//M100.0的通断
-                bool M100_1 = (read.Content[0] & 0x02) == 0x02;//M100.1的通断
-                bool M100_2 = (read.Content[0] & 0x04) == 0x04;//M100.2的通断
-                bool M100_3 = (read.Content[0] & 0x08) == 0x08;//M100.3的通断
-                bool M100_4 = (read.Content[0] & 0x10) == 0x10;//M100.4的通断
-                bool M100_5 = (read.Content[0] & 0x20) == 0x20;//M100.5的通断
-                bool M100_6 = (read.Content[0] & 0x40) == 0x40;//M100.6的通断
-                bool M100_7 = (read.Content[0] & 0x80) == 0x80;//M100.7的通断
-            }
-            else
-            {
-                MessageBox.Show(read.ToMessageShowString());
-            }
-        }
-        private void button4_Click(object sender, EventArgs e)
-        {
-            //写入结果是M100:81  M101:22  M102:124
-            OperateResultBytes write = siemens_net.WriteIntoPLC(SiemensDataType.M, 100, new byte[] { 81, 22, 124 });
-            if (write.IsSuccess)
-            {
-                textBox4.Text = "写入成功";
-            }
-            else
-            {
-                MessageBox.Show(write.ToMessageShowString());
-            }
-        }
-
-
# License: -Copyright (c) Richard.Hu. All rights reserved. -Licensed under the MIT License. +###### Copyright (c) Richard.Hu. All rights reserved. +###### Licensed under the MIT License. diff --git a/软件系统客户端模版/screenshots/client12.png b/软件系统客户端模版/screenshots/client12.png new file mode 100644 index 0000000000000000000000000000000000000000..df16fdeac90c85c1fb57928e752fedacf48001dc GIT binary patch literal 61735 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 mKO?h~2{l90zrzDXd&ilTcduKi|Jc