Стартовая страница › Форумы › Ошибки в работе › Не проходят команды ТУ к контроллеру
- В этой теме 11 ответов, 3 участника, последнее обновление 6 лет, 6 месяцев назад сделано Mikhail.
-
АвторСообщения
-
10.09.2017 в 13:03 #7239AlgomusУчастник
Добрый день. Не проходят команды ТУ к контроллеру и через Коммуникатор и через Web-интерфейс, регистр читается. Modbus TCP. Через Modbus Poll все работает.
11.09.2017 в 10:37 #7242manjey73УчастникРазрешить команды ТУ в Коммуникаторе на соответствующей линии. Настроить их в шаблоне.
11.09.2017 в 11:06 #7244MikhailМодераторДобрый день! Если проблема не решится, присылайте логи отправки команды из Коммуникатора.
11.09.2017 в 11:51 #7245manjey73УчастникУ меня вот аналогичная ситуация, только я пытаюсь скадой протестировать устройство, послав бинарную команду в 16-м виде.
Сообщение в логе Коммуникатора — КП не поддерживает отправку команд.
Привязка КП отключена, пытаюсь послать команду из самого КоммуникатораВопрос — как так, если команды ТУ разрешены ?
Линия связи так же не привязана сейчас к серверу.
Опрос КП проходит и Коммуникатор получает ответ от устройства.
з.ы. Очередная Модбас плата от китайцев, адрес узнается командой и так же меняется командой.
11.09.2017 в 19:05 #7249MikhailМодераторВероятно, в шаблоне Модбас не прописаны команды. Или после изменения шаблона не перезапустили службу.
11.09.2017 в 20:25 #7251manjey73УчастникДа, разобрался уже. А вообще, учитывая, что Коммуникатор способен отправлять бинарные команды и может работать без сервера, когда тестируешь устройство, было бы не плохо добавить режим посылки команды как:
1. в терминале, с указанием адреса, контрольной суммы и т.д.
2. брать адрес из настроек Коммуникатора и после посылки расчитывать и добавлять контрольную сумму.
Это позволит посылать в устройство нестандартные команды, например которые не реализованы сейчас в KpModbus.dllИ на будущее бы позволило реализовывать модбас подобные протоколы, ну или хотя бы тестировать оборудование, где CRC такая же как и у Modbus
з.ы. ну и у китайцев ошибки в описании были.
12.09.2017 в 10:56 #7254MikhailМодераторДа, полезные функции.
12.09.2017 в 12:44 #7259AlgomusУчастникДобрый день. Перепробовал и проверил все…
При выборе в шаблоне множественной команды любое стандартное значение команды обнуляет регистр типа 4Х — Рпрс. При выборе бинарной записывается запредельное значение 12336 (должно не более 100%):
+———+———————+———-+——-+
| ******** Pпрс ******************************** |
+———+———————+———-+——-+
| 42 | Pпрс | 12336 | 2288 |
+———+———————+———-+——-+Архивные данные отсутствуют
События отсутствуют
Команды ТУ (последние 10 команд)
+—+———————+—————————————————————————+
| № | Дата и время | Описание |
+—+———————+—————————————————————————+
| 1 | 12.09.2017 14:34:31 | Команда ТУ: тип=Standard, КП=22, номер=2288, значение=16,000 |
+—+———————+—————————————————————————+
| 2 | 12.09.2017 14:34:45 | Команда ТУ: тип=Binary, КП=22, номер=2288, данные=30303030203030303020… |
+—+———————+—————————————————————————+
| 3 | 12.09.2017 14:35:22 | Команда ТУ: тип=Standard, КП=22, номер=2288, значение=16,000 |
+—+———————+—————————————————————————+
| 4 | 12.09.2017 14:35:48 | Команда ТУ: тип=Binary, КП=22, номер=2288, данные=30303030203030303020… |
+—+———————+—————————————————————————+
| 5 | 12.09.2017 14:36:07 | Команда ТУ: тип=Standard, КП=22, номер=2288, значение=55,000 |
+—+———————+—————————————————————————+
| 6 | 12.09.2017 14:36:18 | Команда ТУ: тип=Binary, КП=22, номер=2288, данные=30303030203030303020… |12.09.2017 в 13:19 #7260manjey73УчастникAlgomus бинарной командой попробуйте переставлять байты местами, Возможно причина в этом. Тогда придется писать формулу для перестановки так, чтобы это поняло ваше оборудование. Обычно это с float приходится делать. и иногда с Word тоже.
12.09.2017 в 20:22 #7262AlgomusУчастникНе помогло. Перепробовал в разных комбинациях…
13.09.2017 в 09:44 #7264MikhailМодераторДобавьте в таблицу Формулы:
double MySwapBytes(double x) { byte[] bytes1 = BitConverter.GetBytes(x); byte[] bytes2 = new byte[8] { bytes1[7], bytes1[6], bytes1[5], bytes1[4], bytes1[3], bytes1[2], bytes1[1], bytes1[0] }; return BitConverter.ToDouble(bytes2, 0); }
В формуле канала управления пропишите MySwapBytes(Cmd)
13.09.2017 в 09:46 #7265MikhailМодераторИспользуйте, например, этот конвертер https://www.h-schmidt.net/FloatConverter/IEEE754.html чтобы посмотреть из каких байт состоит вещественное число. Либо найдите аналогичный конвертер, их множество, некоторые удобнее, некоторые наоборот.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.