自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 C#自动化程序界面

C# 自动化程序的手动 参数设定和自动界面模拟展示

2025-10-07 15:14:56 1529

原创 C# 读取csv文件到datagridview已经修改之后更新保存

该程序实现了一个CSV数据编辑器,主要功能包括:1. 在窗体加载时读取Config目录下的data.csv文件,将数据以表格形式显示在DataGridView控件中;2. 提供保存按钮,可将修改后的数据重新写入CSV文件。程序采用逗号作为分隔符,支持含标题行的CSV文件读取,并自动处理特殊字符的转义。核心功能通过DataTableCSVSaver类实现,包含数据转义和文件写入逻辑。程序结构清晰,包含异常处理机制,操作完成后会显示提示信息。

2025-10-12 16:14:59 853

原创 C# datagridview读取XML数据和保存到XML的例子

本文介绍了一个C#程序,用于实现XML数据与DataGridView的双向交互。程序界面包含一个DataGridView控件和一个保存按钮,主要功能包括:1. 在Form_Load事件中读取XML文件(包含产品代码、类别、价格和库存信息)并显示在DataGridView中;2. 通过ExportToXml方法将DataGridView中的修改写回XML文件,自动生成带有时间戳的Products根节点和Product子节点。程序使用System.Xml命名空间处理XML数据,实现了数据的可视化编辑和持久化存储

2025-10-07 18:39:51 617

原创 c# 读取xml到datagridview

MessageBox.Show($"解析XML时出错:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);row["部门"] = GetNodeValue(employeeNode, "Department", "");row["姓名"] = GetNodeValue(employeeNode, "Name", "");row["年龄"] = GetNodeValue(employeeNode, "Age", 0);

2025-09-24 22:42:02 554

原创 c# datagridview添加list内容

Console.WriteLine($"{row["ID"],-10} {row["姓名"],-10} {row["年龄"],-10} {((DateTime)row["生日"]).ToString("yyyy-MM-dd"),-12} {row["薪资"],-10} {row["是否激活"],-10}");dataTable.Columns.Add("生日", typeof(DateTime));dataTable.Columns.Add("是否激活", typeof(bool));

2025-09-24 11:18:08 521

原创 c# 使用线程产生随机数曲线 开始和停止使用按钮控制

lblDataCount.Text = $"数据点数: {dataCount}";lblStatus.Text = "状态: 运行中...";// 如果从非UI线程调用,使用Invoke。// 添加Chart控件(如果使用Chart控件)// 生成随机数 (0-100)// 限制数据点数量。// 控制数据生成速度。// 在UI线程上执行。// 更新数据计数显示。// 自动调整X轴范围。// 安全地更新图表。// 配置Chart控件。// 创建数据生成线程。// 通用的安全UI更新方法。

2025-09-22 14:02:47 501

原创 c# xml与字典使用 设计器程序

this.btnDeserialize.Text = "从XML反序列化";this.btnSerialize.Text = "序列化为XML";this.lblCount.Text = "条目数量:0";this.groupBox2.Text = "字典内容";this.btnClear.Text = "清空字典";this.btnAdd.Text = "添加";this.label1.Text = "键:";this.label2.Text = "值:";

2025-09-17 00:15:58 950

原创 c# xml与字典转化

MessageBox.Show($"反序列化过程中发生错误: {ex.Message}");MessageBox.Show($"序列化过程中发生错误: {ex.Message}");MessageBox.Show("XML文件已成功反序列化为字典!saveFileDialog.Filter = "XML 文件|*.xml";openFileDialog.Filter = "XML 文件|*.xml";openFileDialog.Title = "打开XML文件";// 将字典序列化为XML。

2025-09-17 00:11:38 842

原创 c#关于类的字典的简单应用

var lblMajor = new Label { Text = "专业:", Location = new Point(20, 50), Size = new Size(60, 20) };var lblId = new Label { Text = "学生ID:", Location = new Point(20, 20), Size = new Size(60, 20) };students.Add(1001, new Student(1001, "张三", 20, "计算机科学", 3.8));

2025-09-16 21:51:53 890

原创 c# tcp server创建一个固定的端口,等待客户端连接,然后进行收发

Console.WriteLine($"客户端已连接 [{client.Client.RemoteEndPoint}]");Console.WriteLine($"处理客户端时发生错误: {ex.Message}");Console.WriteLine($"已发送响应: {response}");Console.WriteLine($"服务器已启动,正在监听端口 {port}...");Console.WriteLine($"服务器异常: {ex.Message}");// 3. 进入循环等待客户端连接。

2025-05-23 22:24:06 489

原创 c# client进行数据收发的简单例子

/ 超时触发 SocketException。Console.WriteLine($"收到数据: {Encoding.UTF8.GetString(buffer, 0, bytesRead)}");// 设置超时时间为 5 秒(单位:毫秒)Console.WriteLine("读取超时!// 接收数据(带超时)

2025-05-23 19:34:00 420

原创 c# 循环运动控制

Console.WriteLine($"当前位置: {CurrentPosition.X:F1}, {CurrentPosition.Y:F1}");Console.WriteLine($"当前位置: {controller.CurrentPosition}");Console.WriteLine($"当前状态: {controller.CurrentStage}");Console.WriteLine("等待启动信号... (输入 'go' 继续)");CurrentStage = "等待启动信号";

2025-05-18 21:40:18 1087

原创 Codesys与Factory IO实现连接的方法

Codesys在运动控制领域有着广泛应用,Factory IO可以做出漂亮的3D仿真界面,两个结合起来就可以做出接近实际设备的效果。下边介绍实现Codesys与Factory IO连接的方法。主要思路是使用Factory IO做Modbus TCP/IP Server。Codesys设备做Modbus_TCP_Slave。6.factory 添加start 和EMG按钮并且与 Coil连接。4.codesys需要添加一个Read coil的通道。5.要把右下角的Start PLC点击一下。

2024-09-08 22:17:28 1738 1

原创 Codesys流水线动作仿真

/ 3.物料顶升 0->-10。在自动化设备中,流水线用来搬运载具或物料,在设备在有着广泛的应用,通过仿真来模拟流水线的动作对学习codesys编程很有帮助,本文介绍一个简单的流水线仿真。// 5.物料下降 -10->0。// 6.阻挡下降 0->20。

2024-09-01 20:35:35 1427

原创 codesys 指示灯延时亮

前面已经介绍过codesys通过按钮控制指示灯亮,由于codesys的延时功能比较常用,现在介绍添加延时功能的指示灯程序,程序定义如下:VART1:TON;END_VAR程序内容如下:END_IFELSEEND_IF可视化界面如下:

2024-09-01 19:15:51 656

原创 Codesys让奥运奖牌动起来

Codesys具有强大的运动功能,和可视化功能,本文介绍通过可视化界面让奖牌运动起来。照片池的位置也与这两个变量绑定,就可以实现拖到滑块让奥运奖牌移动了。分别绑定 PLC_PRG.iXpos和PLC_PRG.iYpos。Application添加照片池。照片池选择实现下载好的奖牌图片。添加一个水平滑块和一个垂直滑块。把照片池拖入到可视化界面。程序只需要定义两个变量。

2024-08-20 21:35:03 422

原创 Codesys按钮与指示灯

数据绑定如下:启动按钮输入配置->Tap->Variable绑定PLC_PRG.bStart。本文介绍codesys的简单应用,即启动按钮按下,指示灯亮;停止按钮按下,指示灯灭。停止按钮输入配置->Tap->Variable绑定PLC_PRG.bStop。Codesys可视乎界面的如下,包含一个启动按钮、一个停止按钮和一个指示灯。

2024-08-19 22:01:53 1084 5

原创 Codesys Case结构的简单实例

Codesys的Case结构比较常见,需要熟练掌握,本实例介绍case的简单应用,通过输入的成绩判断成绩标准即。Out1:='输入不在范围';包含一个成绩输入控件和一个成绩显示控件,按钮表示开始运算。Out1:='不合格';Out1:='优秀';Out1:='合格';Out1:='良好';

2024-08-19 21:51:01 727

原创 XY 图显示斜线

本文介绍使用Codesys可视化界面的XYChart显示斜线,主要思路是通过计算产生表示斜线的数组,然后把数组与XYChart绑定。第一个TextField绑定ik,第二个TextField绑定ib,按钮绑定xDoIt。在可视化界面上添加如下控件,XYchart 两个TextField,一个按钮。

2024-08-19 21:39:39 563

原创 Codesys 可视化简单实例

TextField Texts->Text输入%s,Text variables->Text variable 选择PLC_PRG.s3。DipSwitch的Variable选择绑定PLC_PRG.bStart。在可视化界面上添加TextField和按钮DipSwitch。然后添加对象->可视化。

2024-08-17 22:12:33 2066

原创 Codesy是使用加法函数实现加法运算示例

函数名改为Add1,类型函数,返回类型int;bStart为假时 c的值为0。bStart为真时 c的值为3。首先添加对象,添加POU。

2024-08-17 20:08:27 555

原创 Codesys 使用函数方法实现加1

Codesys的函数功能比较基本,但是熟练使用才能写出复杂的程序,下面介绍通过调用函数的方式实现加1的功能,首先添加对象->POU,程序运行当bstart为假时,a2为0;bstart为真时,a2为2。然后名称改为Acc,类型选择:函数,返回类型选择INT。Acc里面的代码如下。

2024-08-17 19:43:48 914

原创 Codesys简单的加法实现

基于EtherCAT协议的驱动器、IO模块在自动化行业近年来得到了广泛的应用,Codesys平台的PLC对EtherCAT协议具有很好的兼容性,Codesys平台也得到了国内外众多PLC厂商的支持,Codesys编程对于自动化行业的人员来后续可能会变成一种常用的技能。然后再Application->添加对象->可视化添加Codesys的可视化界面。然后把SpinControl和变量进行绑定,三个控件分别绑定a,b,c。如上就是一个简单的codesys加法仿真的例子。代码很简单涉及三个整数a,b,c。

2024-07-24 18:44:27 697

原创 Postman发送Http请求的方法

综上所述实际项目中需要使用Get还是Post方法需要依据客户定义,具体方法里面的Header设定,内容格式也要根据实际应用修改。格式对接客户服务器,进行数据收发交换的时候,可以用它来调试,确认好数据格式之后,再进一步开发程序。3.使用Post发送Json格式的Post请求。然后单击send就可以查看返回值。请求的调试工具,当我们需要通过。单击send就可以查询南京天气。2.使用Post方法获取天气。是一款功能强大的用于发送。

2024-07-23 20:12:14 1168

原创 网络调试助手的使用方法

在做工控项目的时候,与机械手交互,视觉程序交互比如康耐视或者基恩士视觉进行交互的时候,与客户后天交互,获取前站生产信息,上传生产数据的时候,也要用到网络交互。首先说明一下我们需要使用127.0.0.1回送地址,它是指本地机,一般用来测试使用。此次使用的网络调试软件是TCP调试助手(V1.9),百度搜索就可以下载。实际应用的时候可以根据要求选择调试助手做服务器或者客户端,在设置端口建立通讯就可以进行指令测试了。服务器和客户端的网络指示灯都会变成绿色,表明已经建立网络连接,再打开一个网络调整助手程序,

2024-07-23 19:26:04 6016

原创 UDP调试工具使用入门

是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。,传输数据之前源端和终端不建立连接。下面使用网络调试助手介绍一下UDP通讯。如上就是UDP通讯的简介,主要概念包括本地主机地址,本地主机端口,远程主机IP:端口需要一起设定,建立好通讯,就可以进行进一步的数据收发,数据解析等工作。

2024-07-23 19:16:03 2133

add函数版.projectarchive

Add1里面的定义如下: FUNCTION Add1 : INT VAR_INPUT     In1:INT;     In2:INT:=1; END_VAR VAR END_VAR 程序如下: Add1:=In1+In2; 然后看PLC_PRG主程序: 定义如下: PROGRAM PLC_PRG VAR     a:INT:=1;     b:INT:=2;     c:INT:=0;     bStart:BOOL:=FALSE; END_VAR 程序如下:

2024-08-18

add1 函数版.projectarchive

Acc里面的代码如下 首先是定义变量 FUNCTION Acc : INT VAR_INPUT     IN1:INT; END_VAR VAR     P1:INT:=1; END_VAR 程序 Acc:=IN1+P1; PLC_PRG 里面定义变量如下 PROGRAM PLC_PRG VAR     a1:INT:=1;     a2:INT:=0;     bStart:BOOL:=FALSE; END_VAR

2024-08-18

Hello.projectarchive

Codesys可视化功能比较强大,熟练使用之后可以做出漂亮的界面,本实例介绍Codesy是可视化的简单应用: 程序定义如下: PROGRAM PLC_PRG VAR s1:STRING:='Good Morning'; s2:STRING:='Hello'; s3:string:=''; bStart:BOOL:=FALSE; END_VAR 程序代码如下: IF bStart THEN s3:=s2; ELSE s3:=s1; END_IF 然后添加对象->可视化 ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/weixin_71914626/article/details/141287659

2024-08-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除