C#窗体应用中使用EasyModbusCore通讯

EasyModbusCore

网络的建立

cs 复制代码
using EasyModbus;

     // 创建Modbus客户端
     ModbusClient modbusClient;

     // 创建Modbus客户端实例
     modbusClient = new ModbusClient(textBox_IP.Text, int.Parse(textBox_port.Text)); // IP地址和端口
     //连接客户端
     modbusClient.Connect();
     if (modbusClient.Connected)
     {
          Console.WriteLine("连接到客户端");
          MessageBox.Show("连接成功");
     }
     //断联
     modbusClient.Disconnect();
     MessageBox.Show("断开连接");

写入寄存器

写入一个寄存器

cs 复制代码
// 地址,数据 
modbusClient.WriteSingleRegister(int.Parse(textBox_writeAddress1.Text), int.Parse(textBox_writeData1.Text));

写入多个寄存器

cs 复制代码
// textBox_writeDataS.Text是以','分割字符串数组
//.Trim()       //去除字符串首尾空白
//.Split(',')   // 以【逗号】为分隔符,把字符串切成字符串数组
string[] strArr = textBox_writeDataS.Text.Trim().Split(',');
// 获取到需要写入的多个数据
int[] holdingRegisters = new int[strArr.Length];
for (int i = 0; i < strArr.Length; i++)
{
    holdingRegisters[i] = int.Parse(strArr[i].Trim());
}
//起始地址,数组数据    
modbusClient.WriteMultipleRegisters(Convert.ToInt32(textBox_writeAddressS.Text), holdingRegisters);

读取寄存器

读取多个寄存器

一个:

cs 复制代码
//读取起始地址,读取个数
int[] readValue =modbusClient.ReadHoldingRegisters(Convert.ToInt32(textBox_readAdress1.Text), 1);
//读取到的数据,用标签Lable显示在窗体应用上
label_readData1.Text = Convert.ToString(readValue[0]);

多个:

cs 复制代码
//读取多个寄存器
int[] readValueS = modbusClient.ReadHoldingRegisters(Convert.ToInt32(textBox_readAddressS.Text), Convert.ToInt32(textBox_readAddressNum.Text));
//将int数组 转化为字符串 每个数组用","分隔
string dataTextS = string.Join(",", readValueS);
//显示在窗体应用标签上
label_readValues.Text = dataTextS;

变量类型转换

string转int

int.Parse(文本字符串变量);

Convert.ToInt32(文本字符串变量);

int转string

Convert.ToString(int型变量);

string dataTextS = string.Join(",", int型数组变量); int型数组变量转为字符串,每个数组用","分隔。

Trim().Split(',')

相关推荐
Ivanqhz1 分钟前
KV Cache
服务器·数据库·人工智能·深度学习·算法
荣合技术服务14 分钟前
VMware ESXi 虚拟化平台服务器虚拟机数据恢复服务
linux·运维·服务器
杭州领祺科技16 分钟前
保信子站深度解析:继电保护信息采集与故障诊断的关键枢纽
linux·服务器·网络·新能源·储能·虚拟电厂
xh didida19 分钟前
Linux -- 进程概念
linux·服务器·开发语言·c++
爱吃香菜的初学者20 分钟前
十三.Linux——信号量
linux·运维·服务器·开发语言
Ruiery36 分钟前
Linux 6.6内核 CPU 深度解析(十二):SMT 进阶 — core scheduling 与共享算力的负载平衡
linux·运维·服务器
2401_872418781 小时前
Windows服务器:错误 403 - 禁止访问:本地 FTP 上传文件到网站服务器后提示无访问权限
运维·服务器·windows
Ruiery10 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包10 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
91刘仁德13 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http