Вход

Просмотр полной версии : Инструкция по организации обмена между СП307 и внешним устройством по Modbus ASCII



Ворон226
29.09.2021, 15:46
Заранее прошу прощения за такой простой вопрос, но полдня поиска пошаговой инструкции по организации обмена ни к чему не привёл. И да - я совсем не программист.
В наличии панель СП307 и датчик вакуума Thyracont VSR53DL
Задача: считать значение вакуума с датчика и вывести на экран СП307

Что выяснил:
1. Организовать обмен можно по протоколу Modbus ASCII
2. Подключил датчик к панели.
3. Настроил проект в конфигураторе. Датчик по адресу 1. Панель - Master, датчик - Slave

Если бы я подключал панель к ПР или к ПЛК, то всё легко бы прописал через регистры. Но в паспорте к датчику вакуума прописаны только команды, которыми можно опросить датчик (или изменить его настройки).

Понимаю, что нужно где-то сформировать команду опроса датчика, которая бы опрашивала датчик постоянно и записывала опрошенное значение в один из внутренних регистров. А затем значение этого внутреннего регистра выводить на экран СП.
Также выяснил, что команда должна быть такая:
0 0 1 0 M V 0 0 D CR, где
001 - адрес датчика;
0 - чтение;
MV - команда опроса значения вакуума;
00 - данных нет;
D - проверка на чётность;
CR - ???

А ответ должен быть такой:
0 0 1 1 M V 0 7 <число> * CR , где
001 - адрес датчика;
1 - ответ на чтение;
MV - опрос значения вакуума;
07 - данные в семи разрядах;
<число> - значение вакуума в семи разрядах;
* - проверка на чётность;
CR - ???

Как этот процесс организовать? Через какие инструменты СП307? Есть ли где пошаговая инструкция по организации подобного обмена для чайников?

Обязуюсь написать такую инструкцию, если смогу разобраться в этом вопросе.

Спасибо за внимание!

petera
29.09.2021, 16:16
Заранее прошу прощения за такой простой вопрос, но полдня поиска пошаговой инструкции по организации обмена ни к чему не привёл. И да - я совсем не программист.
В наличии панель СП307 и датчик вакуума Thyracont VSR53DL
Задача: считать значение вакуума с датчика и вывести на экран СП307

Что выяснил:
1. Организовать обмен можно по протоколу Modbus ASCII
2. Подключил датчик к панели.
3. Настроил проект в конфигураторе. Датчик по адресу 1. Панель - Master, датчик - Slave

Если бы я подключал панель к ПР или к ПЛК, то всё легко бы прописал через регистры. Но в паспорте к датчику вакуума прописаны только команды, которыми можно опросить датчик (или изменить его настройки).

Понимаю, что нужно где-то сформировать команду опроса датчика, которая бы опрашивала датчик постоянно и записывала опрошенное значение в один из внутренних регистров. А затем значение этого внутреннего регистра выводить на экран СП.
Также выяснил, что команда должна быть такая:
0 0 1 0 M V 0 0 D CR, где
001 - адрес датчика;
0 - чтение;
MV - команда опроса значения вакуума;
00 - данных нет;
D - проверка на чётность;
CR - ???

А ответ должен быть такой:
0 0 1 1 M V 0 7 <число> * CR , где
001 - адрес датчика;
1 - ответ на чтение;
MV - опрос значения вакуума;
07 - данные в семи разрядах;
<число> - значение вакуума в семи разрядах;
* - проверка на чётность;
CR - ???

Как этот процесс организовать? Через какие инструменты СП307? Есть ли где пошаговая инструкция по организации подобного обмена для чайников?

Обязуюсь написать такую инструкцию, если смогу разобраться в этом вопросе.

Спасибо за внимание!

Ничего общего с Modbus ASCII нет
У Вашего датчика СВОЙ уникальный протокол.
Можно через макрос на Си с прямым доступом к порту панели попробавать
Типа этого https://owen.ru/forum/showthread.php?t=29851&p=306065&viewfull=1#post306065

Или этого https://owen.ru/forum/showthread.php?t=26719&p=246882&viewfull=1#post246882
Но не совсем чайник должен быть.

kondor3000
29.09.2021, 16:17
С пол пинка вы тут ничего не сделаете, вам придётся либо макросы осваивать, как пример https://owen.ru/forum/showthread.php?t=35121

либо покупать и программировать ПЛК.
Вот как пример https://owen.ru/forum/showthread.php?t=35373

melky
29.09.2021, 16:17
CR - возврат каретки, посмотрите в таблице ASCII - код 0x0D