Английский (README.md) | 简体中文
— Это клиентское приложение для обмена данными с устройствами интернета вещей (IoT), которое включает в себя основные промышленные протоколы связи, такие как ModBus, Bacnet и другие распространённые протоколы PLC-коммуникаций.
— Компонент основан на .NET Standard 2.0 и может использоваться для кроссплатформенной разработки на .Net, включая Windows, Linux и даже Raspberry Pi.
— IoTClient является открытым исходным кодом и доступен бесплатно под самой либеральной лицензией MIT. Вы можете свободно модифицировать и использовать его в коммерческих целях (при коммерческом использовании рекомендуется провести оценку и тестирование).
— Инструменты разработки: Visual Studio 2019.
— QQ группа для общения: 700324594.
Использование
Проекты на основе библиотеки IoTClient
Ссылки
Nuget установка. Install-Package IoTClient
или графическая установка.
//1、Создание экземпляра клиента - укажите правильный IP и порт
ModBusTcpClient client = new ModBusTcpClient("127.0.0.1", 502);
//2、Операция записи - параметры в порядке: адрес, значение, номер станции, функциональный код
client.Write("4", (short)33, 2, 16);
//Примечание: при записи данных необходимо указать тип данных
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);//запись логического значения
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); //线圈类型数据读取
client.ReadDiscrete("32", stationNumber, 2);//离散类型数据读取
client.ReadString("100", stationNumber,10); //读取字符串
**//4、如果没有主动Open,则会每次读写操作的时候自动打开自动和关闭连接,这样会使读写效率大大减低。所以建议手动Open和Close。**
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);
Основной язык текста запроса — это язык C#. Текст запроса написан на английском языке.
SiemensClient, MitsubishiClient, OmronFinsClient, AllenBradleyClient — это клиенты для взаимодействия с программируемыми логическими контроллерами (ПЛК). Они позволяют выполнять операции чтения и записи данных в ПЛК.
В запросе описывается использование этих клиентов. В частности, говорится о том, что:
* клиенты SiemensClient, MitsubishiClient, OmronFinsClient и AllenBradleyClient являются потокобезопасными;
* при использовании клиента SiemensClient рекомендуется сделать его одноэлементным и использовать один экземпляр в разных потоках;
* если не открывать соединение вручную, то оно будет автоматически открываться и закрываться при каждой операции чтения или записи, что может снизить производительность;
* рекомендуется вручную открывать и закрывать соединение перед выполнением операций чтения и записи;
* все операции чтения и записи возвращают объект Result, который содержит информацию об успешности операции, ошибке, запросе и ответе от сервера, а также полученное значение.
Также в запросе приводятся примеры использования клиентов SiemensClient, MitsubishiClient, OmronFinsClient и AllenBradleyClient для выполнения операций чтения и записи.
**Примечание:** *в запросе есть фрагменты кода, которые не удалось распознать как язык программирования. Возможно, это язык разметки.* **IoT-gateway (открытый исходный код)**
Автор: iioter
[IoT-gateway](https://gitee.com/iioter/iotgateway)
**Система управления энергоресурсами (коммерческая)**
Разработчик: компания «Циньна кэцзи»
* **Система управления энергоресурсами — локальный проект, одно устройство.**
* Система управления энергоресурсами на местах для одного проекта.
* **Система управления энергоресурсами — облачный сервис, несколько проектов.**
* Интерфейс системы управления энергоресурсами в облачном сервисе для нескольких проектов.
* Экран 1.
* Экран 2.
* Мониторинг и управление системой управления энергоресурсами в облачном сервисе.
* Экран 3.
* Экран 4.
* Экран 5.
* Экран 6.
* Диаграмма архитектуры системы.
* **Мобильное приложение системы управления энергоресурсами.**
* Мобильное приложение системы управления энергоресурсами.
* Мобильное приложение системы управления энергоресурсами.
* Мобильное приложение системы управления энергоресурсами.
* Мобильное приложение системы управления энергоресурсами.
* Мобильное приложение системы управления энергоресурсами.
* Мобильное приложение системы управления энергоресурсами.
**Система контроля подводных аппаратов (коммерческая)**
Разработчик: компания «Циньна кэцзи».
* **Веб-интерфейс системы контроля подводных аппаратов.**
* Веб-интерфейс системы контроля подводных аппаратов.
* Веб-интерфейс системы контроля подводных аппаратов.
* Веб-интерфейс системы контроля подводных аппаратов.
* **Мобильная версия системы контроля подводных аппаратов.**
* Мобильная версия системы контроля подводных аппаратов.
* Мобильная версия системы контроля подводных аппаратов.
* Мобильная версия системы контроля подводных аппаратов.
* Мобильная версия системы контроля подводных аппаратов.
**Интеллектуальная система сортировки товаров компании «Юэбан» (коммерческая)**
Разработчик: компания «Юэбан кэцзи».
Изображения не предоставлены.
**Система мониторинга счётчиков электроэнергии (коммерческая)**
Разработчики: компания «Хагэр да цзичэ юань наньчан чжихуэй цзаочэн яньцзюсо».
Изображение не предоставлено. **Программное обеспечение для управления производством в индустрии древесно-стружечных плит (коммерческое использование)**
Компания-владелец: Guangzhou SZ Tech Co., Ltd.
**Программное обеспечение для управления производством в индустрии древесно-стружечных плит (коммерческое использование)**
Компания-владелец: Гуанчжоуская компания высоких технологий «Сэйжи».
## Дружественные ссылки
## IoT Gateway
Открытый исходный код:
https://gitee.com/iioter/iotgateway
Обзор:
IoT Gateway — это межплатформенный шлюз интернета вещей на основе .NET 5. С его помощью можно легко подключаться к любому оборудованию и системе (например, ПЛК, сканерам штрихкодов, станкам с ЧПУ, базам данных, последовательным устройствам, промышленным компьютерам, OPC-серверам, серверам OPC UA, MQTT-серверам и т. д.) через визуальную конфигурацию. Это позволяет осуществлять двустороннюю передачу данных с Thingsboard, IoTSharp или вашей собственной платформой интернета вещей. Предоставляется простой интерфейс разработки драйверов; также возможно выполнение периферийных вычислений.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )