使用C#编程语言编写PLC上位机软件(源码在文章最后)

本程序使用WPF做界面,C#做逻辑,为了界面美观使用了老外的一个开源皮肤框架,逻辑代码为了和S7-1200通讯使用了行内一位大神的库。

借鉴大神的框架在文章后面会提到(这里也是为了尊重原创作者的劳动成果)。

下面来看看界面,再一一介绍下程序框架:

主界面(使用一个win窗口来作为显示,界面左侧有弹出菜单,界面内容通过菜单按钮调用Page来实现界面内容转换)

控制界面使用了按钮和滑动条,按钮模拟了HMI的工作模式,弹起和按下事件分别置位复位PLC变量,滑块是自己做的一个Style,WPF这点还是很方便的。

参数输入界面模拟了 HMI的 IO域,编辑时不刷新变量,输入完成后写入变量,再更新变量里的内容;右边配方功能也是模拟的西门子HMI里配方功能,保存参数到序列化文件,读取的时候反序列化写入PLC变量

曲线记录界面使用了DynamicDataDisplay 开源控件来做为曲线显示,此控件比较强大。在曲线显示的同时后台还要记录数据,在此使用了list来缓存数据并保存到序列化文件,在记录完成后反序列化一次性写入access数据库。

数据查询界面利用日历控件来作为搜索access数据的条件,筛选出零件编号,再把零件编号的对应数据以曲线方式呈现出来,同时也可以以表格方式呈现

故障报警界面使用listbox控件做为显示,利用的消息队列来排序故障信息

更改皮肤颜色界面是这个UI框架附带的功能,效果蛮好。

下面来介绍下程序

界面初始化时连接PLC

PLC连接方法

建立一个实体类,作为需要读取的PLC变量,一次性读取多个变量数据。

曲线刷新使用了多线程,关于数据全部在后台线程里进行,不影响界面运行

曲线数据更新到list使用了linq语法来筛选出需要的数据进行读和写

序列化数据内容,写入到access,当时试过一遍读取数据一遍写入数据库,发现耗时很长,后来想到序列化,缓存再一次性写入,速度提高很多。

目前就介绍到这里,有需要做类似项目的同行可以在下面评论联系,相互学习。

QQ:8300877    QQ群:923525781

本程序源码github地址

如果喜欢可以star或是fork。

这里介绍一下PLC通讯库

HslCommunication组件库;

NuGet地址:

https://www.nuget.org/packages/HslCommunication/

Material DesignXamlToolKit 皮肤框架源码

github地址

https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit

上位机plc编程入门_上位机-使用C#编程语言编写PLC上位机软件-技术论坛-西门子中国...相关推荐

  1. 上位机plc编程入门_【新手入门】西门子PLC编程入门学习

    一.S7-200PLC 的硬件结构及系统构成.安装与接线学习 1.学习什么内容?重点学习什么内容? (1)PLC的硬件结构 (2)PLC的系统构成及CPU和模块参数 (3)PLC的选型,安装及接线(重 ...

  2. plc维修入门与故障处理实例_电气控制基础+PLC编程入门+工程应用实例

    以S7-300/400PLC为主线 电气控制基础+PLC编程入门+工程应用实例 点击图片  购买 编辑推荐1.西门子S7300/400PLC应用广.市场占有率高 2.本书通过大量的实验案例和真实的工程 ...

  3. plc模拟量与通信控制应用实践_电气控制基础+PLC编程入门+工程应用实例

    以S7-300/400PLC为主线 电气控制基础+PLC编程入门+工程应用实例 点击图片  购买 编辑推荐1.西门子S7300/400PLC应用广.市场占有率高 2.本书通过大量的实验案例和真实的工程 ...

  4. 三菱plc pwm指令_电厂技术 | 学习三菱PLC编程入门应先学习什么?想学习三菱PLC的朋友一定要看的入门第一课...

    欢迎转发朋友圈,欢迎文末留言 很多初学PLC的人都会问一个问题,如果学习三菱PLC编程入门应先学习什么?新手编程入门应该先学习三菱PLC编程与应用入门 ,主要内容包括三菱FX系列PLC的数字电路基础. ...

  5. s7填表指令att_这些PLC指令你会用吗?plc编程入门

    这些plc指令你会用吗?plc编程入门 图1:使能=1时,TOF(T38)的触点动作图 图2:使能断开后,计数到设定值后,TOF(T38)的触点动作图(其中T38常开触点是在使能由1到0负跳变后计数器 ...

  6. PLC编程入门-01基础知识介绍

    PLC编程入门-01基础知识介绍 PLC的组成结构 PLC编程语言: PLC输入输出的特点 输入 输出 PLC的组成结构 简图 明细图 CPU:控制器和运算器本身就是CPU主要组成部分,和PC的CPU ...

  7. 上位机plc编程入门_plc编程入门-看完你就懂了

    1.PLC的发展历程 在工业生产过程中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的数据采集.传统上,这些功能是通过气动或电气控制系统来实现的 ...

  8. fx5u mc协议_三菱PLC编程入门:FX5U系列常见问题!

    FX5U是最新一代三菱小型可编程控制器.FX5U主机取消了原本FX传统的国形422编程口,但内置了以太网接口和2入1出模拟量以及RS-485接口.此PLC编程需要使用 GX-Works3软件. 本文为 ...

  9. rust 编程入门_面向初学者的Rust –最受欢迎的编程语言入门

    rust 编程入门 Rust has been voted Stack Overflow's most loved programming language for five years in a r ...

  10. 【资源】OpenCV3编程入门_毛星云

    OpenCV在计算机视觉领域扮演着重要的角色.作为一个基于开源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法.<OpenCV3编程入门>以当前最新版本的 ...

最新文章

  1. 2022-2028年中国橡胶带行业市场运营格局及未来前景分析报告
  2. CTFshow 反序列化 web278
  3. SQL Server Window Function 窗体函数读书笔记二 - A Detailed Look at Window Functions
  4. springcloud的config
  5. 计算机表格怎么求面积,在wps表格中怎么把数据生成面积图?
  6. Chapter7-8_Deep Learning for Constituency Parsing
  7. Tomcat JVM 初始化加大内存
  8. 流媒体传输协议详解之---RTSP认证
  9. mysql mssql 性能对比_MySQL最新版8.0与5.7之性能对比,看看它是如何改进的
  10. 支持Win7的星号密码查看器的实现
  11. 数字滤波器设计工具_数字设计师和代理商的资源和工具
  12. Concurrency in C# Cookbook中文翻译 :c#的并发烹饪书
  13. 规格说明书练习-吉林市1日游
  14. 计算机专业男人喜欢什么样的女人,说实在的,其实男人真正喜欢的女人,就三个特征...
  15. 哈佛学者:这3本英文名著,每天小读10分钟,英语level暴涨....
  16. 如何在MMIT上使用WMLScript文件(How To Use WMLScript Files With MMIT)
  17. UE4 蓝图Structure与Xml的读取
  18. Delphi XE 10 跨平台三层数据库应用教程
  19. p620光耦接单片机_基于51单片机的可控硅调压调光程序-带过零检测
  20. RISC架构与CISC架构对比

热门文章

  1. 操作系统的起源与发展历程
  2. 7628刷breed_我的刷breed机方法 一步一图超详细
  3. tgp饥荒搭建服务器证书,饥荒:联机版服务器搭建方法 搭建TGP专属服务器教程_3DM单机...
  4. VeraCrypt文件硬盘加密使用教程
  5. ubuntu搭建xv6环境
  6. 直线绘制算法-数值微分法(DDA)
  7. 电信企业文化和品牌知识
  8. 各种格式的文件使用工具打开
  9. 澜沧江某水电站下坝址坝址初步设计
  10. 英伟达(NVIDIA)控制面板不见了