C#上位机序列10: Winform上位机通用框架

C#上位机序列1: 多线程(线程同步,事件触发,信号量,互斥锁,共享内存,消息队列)

C#上位机序列2: 同步异步(async、await)

C#上位机序列3: 流程控制(串行,并行,混合)

C#上位机序列4: 动画效果(模拟PLC设备运行)

C#上位机序列5: 三菱通信(FX-3U SerialOverTcp)

C#上位机序列6: modbus通信(NModbus4 modbus tcp)

C#上位机序列7: 分库分表

C#上位机序列8: 数据库同步

C#上位机序列9: 批量读写+事件广播+数据类型处理

C#上位机序列10: Winform上位机通用框架

框架中包含了常用的一些自定义控件,比如文本标签、单选框、动作按钮、皮带等。所有的控件均支持数据双向绑定,也就是说只要我们在控件的属性中指定了变量名称,框架在数据变化时会自动根据值更新动画。在用户操作时,比如从I/O域中输入新的数值或者按下按钮等操作框架会自动将新值写入到PLC中,这些过程全部由框架完成,只需预先导入点位信息表及配置控件属性。

前期准备

1. 导入配置文件(点位地址,数据类型,关联地址)

2. 内置一些自定义控件,配置属性参数

2.1 文本标签配置及单选框配置

 2.2 S按钮(无动画) ,如:

 2.2 S按钮(有动画) ,如:

 :按钮值为false

:按钮值为true

 2.2 S按钮(通过M产生动画) ,如:

 按键前->按键后->M反馈后

 

 

2.3 M动画:带多个状态值

震动筛工作,皮带错误

 监听变量界面,可以查看和PLC地址位关联地址的值信息

参数设置:点击进入,动态加载变量并监听;离开,移除不监听

 单击文本标签或者文本框,填写属性值,确定后,下发至设备,提示:写入成功或失败

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# Winform上位机是一种基于Windows桌面应用程序的上位机开发方式,可以通过串口通信等方式与下位机进行数据交互。以下是一个简单的C# Winform上位机的例子: 1.在Visual Studio中创建一个Windows Forms应用程序项目。 2.在窗体上添加一个ComboBox控件和一个Button控件。 3.在代码中引用System.IO.Ports命名空间,使用SerialPort类实现串口通信。 4.在Button的Click事件中编写代码,获取可用串口列表并在ComboBox中显示。 5.在ComboBox的SelectedIndexChanged事件中编写代码,获取选中的串口名称并打开串口。 6.在串口接收事件中编写代码,处理下位机发送的数据。 以下是一个简单的C# Winform上位机的代码示例: ```csharp using System; using System.IO.Ports; using System.Windows.Forms; namespace WinformSerialPort { public partial class Form1 : Form { private SerialPort serialPort; public Form1() { InitializeComponent(); serialPort = new SerialPort(); serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); } private void Form1_Load(object sender, EventArgs e) { string[] ports = SerialPort.GetPortNames(); if (ports.Length != 0) { comboBox1.Items.AddRange(ports); comboBox1.SelectedIndex = 0; } else { MessageBox.Show("请插入串口设备!!"); } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (serialPort.IsOpen) { serialPort.Close(); } serialPort.PortName = comboBox1.SelectedItem.ToString(); serialPort.BaudRate = Convert.ToInt32(comboBox2.SelectedItem.ToString()); serialPort.Open(); } private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { string data = serialPort.ReadExisting(); // 处理接收到的数据 } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值