PDA

Просмотр полной версии : Связь ПР200 с СИ30



Володя
21.11.2016, 13:10
Здравствуйте, осваивая ПР200 с СИ30, не могу прочитать текущее значение счетчика импульсов (Ctr)/
В макете схемы это переменная - ctu111. На экране(экран2) ПР200 хотелось бы видеть изменения показаний
СИ30. Выход на индикатор F2 сделан для наглядности .
Работа на изменение уставки (ust1)-U1 СИ30 проходит нормально.
Заранее спасибо.
nauki7139@mail.ru

Ревака Юрий
21.11.2016, 13:27
Здравствуйте, осваивая ПР200 с СИ30, не могу прочитать текущее значение счетчика импульсов (Ctr)/
В макете схемы это переменная - ctu111. На экране(экран2) ПР200 хотелось бы видеть изменения показаний
СИ30. Выход на индикатор F2 сделан для наглядности .
Работа на изменение уставки (ust1)-U1 СИ30 проходит нормально.
Заранее спасибо.
nauki7139@mail.ru

Дело в том, что для уставки и значения счетчиков применяется формат LONG 4 байта, а у Вас идет чтение только 2 байт, скорее всего задание уставки будет работать тоже не полностью, макс. 65535. Посмотрю что можно придумать. Во вложении адреса выделил красным, которые нужны для работы.

Ревака Юрий
21.11.2016, 16:34
В прикрепленном файле вариант настроенный для считывания INPUT регистров счета, которые называются "Текущее значение счетчика" и "Текущее значение счетчика физических величин". В принципе так можно считывать любые параметры в формате LONG, счетчик который у Вас устанавливается я не изменял, но стоит обратить внимание на то, что в таком режиме нет возможности задать уставку больше 65535, если необходимо больше, нужно писать в 2 регистра 12 и 13 соответственно, для 1 уставки или 14, 15 для второй.

Володя
24.11.2016, 16:37
Спасибо , все получилось!!!!

Serega_NT
25.09.2026, 12:36
Нифига не работает! опрашивать то опрашивает, но выдает полную чушь. Даже использовал шаблон для СИ30, не помогло. И по отдельности регистры опрашивал и вместе и игрался с настройками порядка расположения байтов и регистров. Даже пробовал изменить тип опрашиваемого значения с целочисленного на число с плавающей запятой. Ничего не работает!

Dimensy
25.09.2026, 13:26
Нифига не работает! опрашивать то опрашивает, но выдает полную чушь. Даже использовал шаблон для СИ30, не помогло. И по отдельности регистры опрашивал и вместе и игрался с настройками порядка расположения байтов и регистров. Даже пробовал изменить тип опрашиваемого значения с целочисленного на число с плавающей запятой. Ничего не работает!

Скорее всего проблема в том, что вы переменную "Пуск" привязали сразу к нескольким системным действиям.
Не надо так делать. И не надо одну и туже переменную использовать для запуска чтения/записи у нескольких сетевых переменных
И хотелось бы увидеть, что за чушь выдает прибор

kondor3000
25.09.2026, 14:02
Шаблон не надо было трогать и проблем бы не было.
Переменную Пуск из окон Опрос и Запуска чтения надо вообще удалить. Чтение сделать циклическим 100 мс, везде.

Serega_NT
25.09.2026, 14:30
Скорее всего проблема в том, что вы переменную "Пуск" привязали сразу к нескольким системным действиям.
Не надо так делать. И не надо одну и туже переменную использовать для запуска чтения/записи у нескольких сетевых переменных
И хотелось бы увидеть, что за чушь выдает прибор

90498
Вот такую чушь выдает

Serega_NT
25.09.2026, 14:33
Шаблон не надо было трогать и проблем бы не было.
Переменную Пуск из окон Опрос и Запуска чтения надо вообще удалить. Чтение сделать циклическим 100 мс, везде.

Слелал как написано. не изменилось ровным счетом ничего

Serega_NT
25.09.2026, 14:37
[QUOTE=kondor3000;488437]Шаблон не надо было трогать и проблем бы не было.

Пробовал изначально без шаблона - вообще отказывался опрашивать счетчик

kondor3000
25.09.2026, 14:37
90498
Вот такую чушь выдает

Так у вас в переменных по ходу регистры (байты) переставлены.
Вы шаблоном пользуйтесь, только отсебятину удалите.

Serega_NT
25.09.2026, 14:57
Так у вас в переменных по ходу регистры (байты) переставлены.
Вы шаблоном пользуйтесь, только отсебятину удалите.

Да я уже всяко переставлял галки и старшим байтом вперед и регистром назад. тут вариантов то всего - 4, я их все перепробовал. ничего не работает. Цифры конечно каждый раз разные и ни одного правильного

kondor3000
25.09.2026, 15:00
Да я уже всяко переставлял галки и старшим байтом вперед и регистром назад. тут вариантов то всего - 4, я их все перепробовал. ничего не работает. Цифры конечно каждый раз разные и ни одного правильного
Судя по огромным числам у вас счёт идёт в обратную сторону.
Как сделать правильно, создать новый проект, добавить шаблон и вывести только счёт СИ30 на поле программы.
Добиться, чтобы правильно показывало. Далее перенести настройки в проект.

Serega_NT
25.09.2026, 15:00
К стати в физических величинах (CEU) всегда 0 выдает

Serega_NT
25.09.2026, 15:11
Судя по огромным числам у вас счёт идёт в обратную сторону.

Ну правильно. Это программа управления установкой ТВЧ. У него нулевая точка вверху, индуктор опускается сначала быстро вниз до уставки 1, затем включает ТВЧ установку и спреер и медленно поднимает вверх до уставки 2, после чего быстро возвращается в ноль. Есть вариант программы где ноль внизу. Все зависит от обрабатываемой детали и как ее удобнее снимать из под индуктора или над индуктором. Соответственно когда идет индуктор вниз, то и значения отрицательные и уставок и текущего положения. Вот эту цифру мне и надо получить, потому что бывают детали где нужно на валу например закалить концы, а центр оставить незакаленным соответственно нужно 2 зоны калить и желательно за один проход и в автоматике. на данный момент такие детали калятся в ручном режиме.

kondor3000
25.09.2026, 15:15
Ну правильно. Это программа управления установкой ТВЧ. У него нулевая точка вверху, индуктор опускается сначала быстро вниз до уставки 1, затем включает ТВЧ установку и спреер и медленно поднимает вверх до уставки 2, после чего быстро возвращается в ноль. Есть вариант программы где ноль внизу. Все зависит от обрабатываемой детали и как ее удобнее снимать из под индуктора или над индуктором. Соответственно когда идет индуктор вниз, то и значения отрицательные и уставок и текущего положения. Вот эту цифру мне и надо получить, потому что бывают детали где нужно на валу например закалить концы, а центр оставить незакаленным соответственно нужно 2 зоны калить и желательно за один проход и в автоматике. на данный момент такие детали калятся в ручном режиме.

У вас на скрине число -104 (65432), так как в ПР нет отрицательных чисел, надо использовать функции конвертации, где отрицательные передаются Доп. кодом,
например число -1 это 4294967295. Так как 2 регистра, то используйте не INT а DINT.
Функции FLOAT_TO_DINT и DINT_TO_FLOAT на ST____ https://owen.ru/forum/showthread.php?t=22915&page=311&p=429821#post429821

Serega_NT
25.09.2026, 16:05
У вас на скрине число -104 (65432), так как в ПР нет отрицательных чисел, надо использовать функции конвертации, где отрицательные передаются Доп. кодом,
например число -1 это 4294967295. Так как 2 регистра, то используйте не INT а DINT.
Функции FLOAT_TO_DINT и DINT_TO_FLOAT на ST____ https://owen.ru/forum/showthread.php?t=22915&page=311&p=429821#post429821

Наконец-то дело сдвинулось с мертвой точки. получил исходные данные, причем, как я опробовал, даже не обязательно оба байта считывать, достаточно только второго. вопрос сейчас в другом встал. Уставки с прибора считываются встроенной функцией и без лишних шаманских бубнов и функцией DINT_TO_FLOAT превращаются в текущие значения, а встроенная функция считывания параметра CEU не считывает вообще ни чего, хотя берет данные с тех же адресов. Ну да ладно, это я еще продолжу эксперименты в понедельник. Главное что уже есть хоть чтото и можно уже писать программу дальше. Спасибо за помощь!90501

kondor3000
25.09.2026, 17:00
Наконец-то дело сдвинулось с мертвой точки. получил исходные данные, причем, как я опробовал, даже не обязательно оба байта считывать, достаточно только второго. вопрос сейчас в другом встал. Уставки с прибора считываются встроенной функцией и без лишних шаманских бубнов и функцией DINT_TO_FLOAT превращаются в текущие значения, а встроенная функция считывания параметра CEU не считывает вообще ни чего, хотя берет данные с тех же адресов. Ну да ладно, это я еще продолжу эксперименты в понедельник. Главное что уже есть хоть чтото и можно уже писать программу дальше. Спасибо за помощь!
Только не второго байта, а второго регистра. Байт до 255, регистр до 65535, тип WORD (INT, UINT).

Если что есть реверсивный счётчик СИ130 https://owen.ru/product/si130

Сергей0308
25.09.2026, 20:06
Только не второго байта, а второго регистра. Байт до 255, регистр до 65535, тип WORD (INT, UINT).

Если что есть реверсивный счётчик СИ130 https://owen.ru/product/si130

Так СИ30, что у товарища тоже реверсивный счётчик.
Даже один из самых первых СИ8 тоже реверсивный счётчик, в чём прикол не понял!

Serega_NT
28.09.2026, 13:46
Разобрался почему параметр CEU не считывался. убрал считывание по регистрам с адресов 2 и 3 переменные Var1 Var2 вообще удалил, оставил только двухрегистровый опрос CEU и все заработало.
Теперь другой вопрос возник - как можно извне еще 2 промежуточные уставки задавать? в СИ30 их только две, а для моей задачи надо 4 (нижняя и верхняя граница термообработки нижнего края вала и еще 2 уставки верхней зоны термообработки? Я конечно сейчас сделаю это внутренними константами, но тогда каждый раз при переходе на другой тип вала придется и программу перезаливать каждый раз.
Было бы не плохо иметь какой ни будь задатчик, посредством которого оператор сам бы менял границы термообработки. Тем более что я счетчик коэффициентом подогнал чтобы он отображал значение позиции в милиметрах

kondor3000
28.09.2026, 16:19
Разобрался почему параметр CEU не считывался. убрал считывание по регистрам с адресов 2 и 3 переменные Var1 Var2 вообще удалил, оставил только двухрегистровый опрос CEU и все заработало.
Теперь другой вопрос возник - как можно извне еще 2 промежуточные уставки задавать? в СИ30 их только две, а для моей задачи надо 4 (нижняя и верхняя граница термообработки нижнего края вала и еще 2 уставки верхней зоны термообработки? Я конечно сейчас сделаю это внутренними константами, но тогда каждый раз при переходе на другой тип вала придется и программу перезаливать каждый раз.
Было бы не плохо иметь какой ни будь задатчик, посредством которого оператор сам бы менял границы термообработки. Тем более что я счетчик коэффициентом подогнал чтобы он отображал значение позиции в милиметрах

Сделайте 2 (или все 4) уставки задаваемые с экрана ПР200, а расчёт в программе ПР.