Ошибка подключения Modbus TCP [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Ошибка подключения Modbus TCP [закрыто]

Сообщение Anonymous »

Я пытался подключиться к моему HMI по Modbus TCP, но он выдал

System.IO.IOException: «Невозможно прочитать данные из транспортного соединения»

Ранее я подключался к другому HMI (BeiJer X2 base 7), используя тот же код, который работал, но я не могу сделать это на новом HMI (FATEK) P5070NB).
В моем случае я подключаюсь с помощью NModbus.IModbusMaster.ReadHoldingRegisters(byteslaveAddress, ushort startAddress, ushort num).
Вот мой код:

Код: Выделить всё

class Program
{
private static ModbusTCP modbus;

static void Main(string[] args)
{
modbus = new ModbusTCP(strModbusIP, 502);

if (modbus.Connected)
{
float[] signalValues_Fact = new float[intPLCPosition_Fact];
ushort[] buff_Fact = modbus.ReadHoldingRegisters(0, (ushort)(0), (ushort)(intPLCPosition_Fact * 2));
}
else
{
Console.WriteLine("Failed to connect to Modbus");
}

modbus.Disconnect();
}
}

public class ModbusTCP
{
private ModbusFactory modbusFactory;
private IModbusMaster master;
private TcpClient tcpClient;

public string IPAdress { get; set; }
public int Port { get; set; }

public bool Connected
{
get => tcpClient.Connected;
}

public ModbusTCP(string ip, int port)
{
IPAdress = ip;
Port = port;

modbusFactory = new ModbusFactory();
tcpClient = new TcpClient(IPAdress, Port);
master = modbusFactory.CreateMaster(tcpClient);
master.Transport.ReadTimeout = 2000;
master.Transport.Retries = 10;
}

public ushort[] ReadHoldingRegisters(byte slaveAddress, ushort startAddress, ushort num)
{
return master.ReadHoldingRegisters(slaveAddress, startAddress, num);
}

public void Disconnect()
{
if (tcpClient != null)
{
tcpClient.Close();
tcpClient = null;
}
}
}
Я ожидаю, что он сможет собирать данные из HMI, но это не так.
Я не знаю, что с ним не так?Что я могу проверить еще раз?


Подробнее здесь: https://stackoverflow.com/questions/798 ... ect-failed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»