IoTClient
Установка через Nuget Install-Package IoTClient
Или графическая установка
//1、Создание экземпляра клиента — введите правильный IP и порт
ModBusTcpClient client = new ModBusTcpClient("127.0.0.1", 502);
//2、Операция записи — параметры: адрес, значение, номер станции, код функции
client.Write("4", (short)33, 2, 16);
//2.1、[Примечание] При записи данных необходимо уточнить тип данных
client.Write("0", (short)33, 2, 16); //Запись значения типа short
client.Write("4", (ushort)33, 2, 16); //Запись значения типа ushort
client.Write("8", (int)33, 2, 16); //Запись значения типа int
client.Write("12", (uint)33, 2, 16); //Запись значения типа uint
client.Write("16", (long)33, 2, 16); //Запись значения типа long
client.Write("20", (ulong)33, 2, 16); //Запись значения типа ulong
client.Write("24", (float)33, 2, 16); //Запись значения типа float client.Write("28", (double)33, 2, 16); //Записать значение типа double
client.Write("32", true, 2, 5); //Записать значение типа Coil
client.Write("100", "orderCode", stationNumber); //Записать строку
//3、Операция чтения: параметры — адрес, номер станции, код функции
var value = client.ReadInt16("4", 2, 3).Value;
//3.1 Другие типы операций чтения данных
client.ReadInt16("0", stationNumber, 3); //Чтение данных типа short
client.ReadUInt16("4", stationNumber, 3); //Чтение данных типа ushort
client.ReadInt32("8", stationNumber, 3); //Чтение данных типа int
client.ReadUInt32("12", stationNumber, 3); //Чтение данных типа uint
client.ReadInt64("16", stationNumber, 3); //Чтение данных типа long
client.ReadUInt64("20", stationNumber, 3); //Чтение данных типа ulong
client.ReadFloat("24", stationNumber, 3); //Чтение данных типа float
client.ReadDouble("28", stationNumber, 3); //Чтение данных типа double
client.ReadCoil("32", stationNumber, 1); //Чтение данных типа Coil
client.ReadDiscrete("32", stationNumber, 2);//Чтение данных типа Discrete
client.ReadString("100", stationNumber, readLength:10); //Чтение строки
//4、Если не активен Open, то соединение будет автоматически открываться и закрываться каждый раз при операциях чтения и записи, что значительно снизит эффективность чтения и записи. Поэтому рекомендуется открывать и закрывать вручную.
client.Open();
//5、Операции чтения и записи возвращают объект результата Result
var result = client.ReadInt16("4", 2, 3);
//5.1 Успешность чтения (true или false)
var isSucceed = result.IsSucceed;
//5.2 Информация об исключении при неудачном чтении
var errMsg = result.Err;
//5.3 Запрос, фактически отправленный операцией
var requst = result.Requst;
//5.4 Ответ от сервера
var response = result.Response;
//5.5 Значение
var value3 = result.Value;
//6、Пакетное чтение
var list = new List<ModBusInput>();
list.Add(new ModBusInput()
{
Address = "2",
DataType = DataTypeEnum.Int16,
FunctionCode = 3,
StationNumber = 1
});
list.Add(new ModBusInput()
{
Address = "2",
DataType = DataTypeEnum.Int16,
FunctionCode = 4,
StationNumber = 1
});
list.Add(new ModBusInput()
{
Address = "199",
DataType = DataTypeEnum.Int16,
FunctionCode = 3,
StationNumber = 1
});
var result = client.BatchRead(list);
//7、Другие параметры конструктора
//IP, порт, время ожидания, настройки большого и малого конца
ModBusTcpClient client = new ModBusTcpClient("127.0.0.1", 502, 1500, EndianFormat.ABCD);
Для более подробного использования ModBusTcp обратитесь к Unit Test.
//Создание клиента — [имя COM-порта, скорость передачи данных, количество битов данных, стоп-биты, чётность]
ModBusRtuClient client = new ModBusRtuClient("COM3", 9600, 8, StopBits.One, Parity.None);
//Остальные операции чтения и записи такие же, как у ModBusTcpClient.
//Создание клиента — [имя COM-порта, скорость передачи данных, количество битов данных, стоп-биты, чётность]
ModbusAsciiClient client = new ModbusAsciiClient("COM3", 9600, 8, StopBits.One, Parity.None);
//Остальные операции чтения и записи такие же, как у ModBusTcpClient.
//Прозрачная передача через последовательный порт, т. е. отправка сообщений в формате Rtu в режиме Tcp
//Создание клиента — IP, порт, тайм-аут, настройки большого и малого конца
ModbusRtuOverTcpClient client = new ModbusRtuOverTcpClient("127.0.0.1", 502, 1500, EndianFormat.ABCD);
//Остальные операции чтения и записи такие же, как у ModBusTcpClient.
//1 Создание клиента — введите модель, IP и порт
//Другие модели: SiemensVersion.S7_200, SiemensVersion.S7_300, SiemensVersion.S7_400, SiemensVersion.S7_1200, SiemensVersion.S7_1500
SiemensClient client = new SiemensClient(SiemensVersion.S7_200Smart, "127.0.0.1",102);
//2 Операция записи
... ### Текст запроса:
client.Write("Q1.3", true);
client.Write("V2205", (short)11);
client.Write("V2209", 33);
//3、Read operation
var value1 = client.ReadBoolean("Q1.3").Value;
var value2 = client.ReadInt16("V2205").Value;
var value3 = client.ReadInt32("V2209").Value;
//4、If there is no active Open, it will automatically open and close the connection every time you read and write operations, which will greatly reduce the efficiency of reading and writing. So it is recommended to open and close manually.
client.Open();
//5、Read and write operations will return the operation result object Result
var result = client.ReadInt16("V2205");
//5.1 Whether the reading is successful (true or false)
var isSucceed = result.IsSucceed;
//5.2 Exception information for failed reading
var errMsg = result.Err;
//5.3 Read the request message actually sent by the operation
var requst = result.Requst;
//5.4 Read the response message from the server
var response = result.Response;
//5.5 Read value
var value4 = result.Value;
**Примечание: об адресе Siemens PLC**
VB263, VW263, VD263: B, W, D обозначают соответственно: byte (8 бит), word (16 бит), doubleword (32 бита).
Когда этот компонент передаёт адрес, нет необходимости передавать тип данных, просто используйте соответствующий метод для чтения соответствующего типа, например:
|C# data type | smart200 | 1200/1500/300
|---|---|---
|bit | V1.0 | DB1.DBX1.0
|byte | VB1 | DB1.DBB1
|shor <br> ushort | VW2 | DB1.DBW2
|int <br> uint <br> float | VD4 | DB1.DBD4
### Рекомендации по использованию SiemensClient
Когда не следует проявлять инициативу и открывать Siemens plc обычно допускает до 8 длинных соединений. Поэтому, когда количество соединений недостаточно или при тестировании, не проявляйте инициативу, чтобы открыть соединение, так что компонент будет автоматически открываться и закрываться немедленно.
Когда следует проявить инициативу и открыть Когда количество длинных соединений достаточно, и вы хотите повысить производительность чтения и записи.
Помимо активных открытых соединений, пакетное чтение и запись также могут значительно повысить производительность чтения и записи. //Пакетное чтение Dictionary<string, DataTypeEnum> addresses = new Dictionary<string, DataTypeEnum>(); addresses.Add("DB4.24", DataTypeEnum.Float); addresses.Add("DB1.434.0", DataTypeEnum.Bool); addresses.Add("V4109", DataTypeEnum.Byte); ... var result = client.BatchRead(addresses);
//Пакетная запись Dictionary<string, object> addresses = new Dictionary<string, object>(); addresses.Add("DB4.24", (float)1); addresses.Add("DB4.0", (float)2); addresses.Add("DB1.434.0", true); ... var result = client.BatchWrite(addresses);
[Примечание] При записи данных необходимо уточнить тип данных client.Write("DB4.12", 9); //Записывается тип int client.Write("DB4.12", (float)9); //Записываемый тип — float
SiemensClient является потокобезопасным классом Из-за ограниченных длинных подключений к ПЛК SiemensClient разработан как потокобезопасный класс. Вы можете установить SiemensClient в качестве синглтона и использовать экземпляр SiemensClient для чтения и записи ПЛК между несколькими потоками.
### Операции чтения и записи MitsubishiClient (Mitsubishi)
//1. Создание экземпляра клиента — введите правильный IP-адрес и порт MitsubishiClient client = new MitsubishiClient(MitsubishiVersion.Qna_3E, "127.0.0.1",6000);
//2. Операция записи client.Write("M100", true); client.Write("D200", (short)11); client.Write("D210", 33);
//3. Операция чтения var value1 = client.ReadBoolean("M100").Value; var value2 = client.ReadInt16("D200").Value; var value3 = client.ReadInt32("D210").Value;
//4. Если нет активного открытого соединения, оно будет автоматически открывать и закрывать соединение каждый раз, когда вы выполняете операции чтения и записи, что значительно снизит эффективность чтения и записи. Поэтому рекомендуется открывать и закрывать вручную. client.Open();
//5. Операции чтения и записи возвращают объект результата операции Result var result =
Приведённый текст представляет собой фрагмент программного кода на языке C#, который описывает взаимодействие с различными устройствами через протоколы связи. В тексте используются методы работы с данными, а также приводятся рекомендации по оптимизации взаимодействия с устройствами.
В тексте не содержится информации, которую можно было бы перевести на русский язык. Система управления энергопотреблением (коммерческая)
Управление энергопотреблением на месте — один проект
Изображения отсутствуют.
Облачное управление энергопотреблением — несколько проектов
Изображения отсутствуют.
Мобильное управление энергопотреблением
Изображения отсутствуют.
Терминальный контроль Haidilao (коммерческий)
Веб-контроль терминала Haidilao
Изображения отсутствуют.
Мобильный контроль терминала Haidilao
Изображения отсутствуют.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )