PDA

Просмотреть полную версию : Как реализовать нестандартный протокол (решено)


SvetlanaS
09.10.2019, 18:25
Как организовать считывание информации с устройства с помощью контроллера Segnetics SMH2Gi ( нестандартный протокол RS-485).
:umnik:

Arsie
09.10.2019, 18:32
Как организовать считывание информации с устройства с помощью контроллера Segnetics SMH2Gi ( нестандартный протокол RS-485).
:umnik:

Легко. Обратившись к справке.

https://dl.segnetics.com/PRODUCTS/SMH2Gi/C/



PS. А если писать в одно место и чуть подождать ответа, а не всюду и сразу и побольше - вообще хорошо будет ;)

Ilya J.
09.10.2019, 18:48
Как организовать считывание информации с устройства с помощью контроллера Segnetics SMH2Gi ( нестандартный протокол RS-485).
:umnik:

Светлана, вам удобно будет продолжить общение здесь, а не на почте?

ATS
09.10.2019, 18:52
Легко. Обратившись к справке.

Доктор, а я после операции смогу играть на скрипке? :spasibo05

SvetlanaS
10.10.2019, 11:44
Как организовать считывание информации с устройства с помощью контроллера Segnetics SMH2Gi ( нестандартный RS-485).
:umnik:

интерфейс RS-485,по нему передаются байты без протокола 9600,8N1.
Тип такой:
24 DC 5F E2 39 2E 00 00 00 0C 00 00 00 00 00 24 28 01 8B DD 69
со скоростью 1 раз в 10сек.

Gel
10.10.2019, 12:41
Вы ищите разработчика, который сможет это сделать или хотите решить задачу своими силами?

SvetlanaS
10.10.2019, 12:50
Вы ищите разработчика, который сможет это сделать или хотите решить задачу своими силами?

Своими силами .

Ilya J.
10.10.2019, 13:01
Своими силами .

Ответ Arsie вносит понимание, как это сделать?

Gel
10.10.2019, 13:37
Своими силами .
Типовой сценарий решения такой задачи:

Пишется программа (на C, Go или другом подходящем языке программировани) с прямым доступом к последовательному порту.

Программа получает кадр и пересылает полученные данные (в вашем примере -- 20/21 байт) в последовательно расположенные Modbus-регистры (в вашем примере -- 10/11 штук) по протоколу Modbus/TCP, которые доступны из программы на FBD.

Программа на FBD занимается конечной обработкой данных.

Иногда разумнее разместить в программе с прямым доступом к последовательному порту предварительную обработку данных и передачу в программу на FBD только требуемых значений, а не всего подряд.

Так же, может быть вариант передачи значений в программу на FBD не по Modbus/TCP, а через разделяемую память.

Для решения задачи потребуются следующие знания:

1) опыт работы с C или другим языком программирования;
2) опыт работы с операционной системой GNU/Linux, включая основы администрирования и программирования;
3) опыт работы с Modbus/TCP и просто TCP или понимание, как использовать библиотеку передачи значений через разделяемую память.

SvetlanaS
10.10.2019, 14:26
Ответ Arsie вносит понимание, как это сделать?

Можно ли организовать данный проект просто на FDB ?
А не заниматься "анонизмом" на С, только для того, чтобы получить данные .:help-01::chas:

Gel
10.10.2019, 14:34
Можно ли организовать данный проект просто на FDB ?
А не заниматься "анонизмом" на С, только для того, чтобы получить данные .:help-01::chas:
Просто на FBD нельзя. А если бы не было возможности заниматься на "C", то и вообще нельзя было бы решить задачу без дополнительных устройств.

А т.к. доступен "С", то можно решить задачу практически любой сложности, это очень мощный и универсальный инструмент и очень хорошо, что в Segnetics дали возможность его использовать.

Ilya J.
10.10.2019, 14:55
Можно ли организовать данный проект просто на FDB ?
А не заниматься "анонизмом" на С, только для того, чтобы получить данные .:help-01::chas:

Согласен с Gel, если вы хотите использовать штатные функции, то это modbus-rtu,modbus-tcp, остальное через с

SvetlanaS
10.10.2019, 16:40
Инструмент С отличная штука, только сделано это через "****":icq_no_wo
Другими словами, для достижения простейшей задачи получения сырых данных надо заниматься тем, что мне не нужно?
Шаблон хоть дайте, пожалуйста:zombie::surrender:blush:

Gel
10.10.2019, 17:22
Инструмент С отличная штука, только сделано это через "****":icq_no_wo
Другими словами, для достижения простейшей задачи получения сырых данных надо заниматься тем, что мне не нужно?
Шаблон хоть дайте, пожалуйста:zombie::surrender:blush:
А с точки зрения рядового программиста на C, программирование на FBD -- это программирование через "****". И для простейших решений задач C, на FBD приходится извращаться.

Такой, вот, когнитивный диссонанс...

SvetlanaS
10.10.2019, 17:32
А с точки зрения рядового программиста на C, программирование на FBD -- это программирование через "****". И для простейших решений задач C, на FBD приходится извращаться.

Такой, вот, когнитивный диссонанс...


Шаблон :))))у вас есть ?:Just_Cuz_21:

ATS
10.10.2019, 17:48
Шаблон :))))у вас есть ?:Just_Cuz_21:

Так все по ссылке (https://forum.segnetics.com/showpost.php?p=50390&postcount=2) Арсения.

А что за устройство шлет само по себе данные и что это за данные Вы в курсе? Без этого можно даже не начинать...

Ilya J.
10.10.2019, 19:16
Так все по ссылке (https://forum.segnetics.com/showpost.php?p=50390&postcount=2) Арсения.

А что за устройство шлет само по себе данные и что это за данные Вы в курсе? Без этого можно даже не начинать...

как с языка сняли)))))

Шаблон )))у вас есть ?

интерфейс RS-485,по нему передаются байты без протокола 9600,8N1.
Тип такой:
24 DC 5F E2 39 2E 00 00 00 0C 00 00 00 00 00 24 28 01 8B DD 69
со скоростью 1 раз в 10сек.

Какой протокол использует ваше устройство, как там реализован этот протокол?

wildwind1978
27.10.2021, 17:49
Уважаемые разработчики, на Matrix возможно реализовать нестандартные протоколы из Linux на Си?
Вообще выглядит очень странно. По функционалу это выходит не ПЛК, а программируемое реле.

ATS
27.10.2021, 18:00
Уважаемые разработчики, на Matrix возможно реализовать нестандартные протоколы из Linux на Си?

Можно. Тему с начала прочтите. :nono:

А ядро Лоджика вообще не занимается обменом данными по каким либо протоколам. Только через шареды.

Arsie
27.10.2021, 18:35
Вообще выглядит очень странно.

Согласен, ваше сравнение выглядит очень странно, когда ответ на ваш же вопрос есть уже во втором сообщении этой темы.

wildwind1978
29.10.2021, 10:06
Я уточнял, потому как в теме значится не ПЛК Matrix, а SMH-2G(i). Вдруг в Matrix нужно что то дорабатывать. Сорри