Вход

Просмотр полной версии : ПЛК + ТРМ



Владислав Г.
26.10.2021, 10:31
День добрый!
ПЛК154 соединен с ТРМ210 по RS485. В проекте участвуют несколько задатчиков температуры, с соответствующими ПИД-коэффициентами. В связи с этим есть необходимость включать при помощи ПЛК автонастройку ТРМ с последующим запоминанием коэффициентов. Получается следующее: после завершения автонастройки, обновленные коэффициенты перезаписываются программой, в результате чего успевает обновиться только пропорциональность, а интеграл и дифференциал - нет. Есть ли возможность на время автонастройки программно отключить переменные записи коэффициентов в ТРМ (в данном случае %QB11.1.1, %QB11.1.2, %QB11.1.3)? Или существуют другие варианты?

kondor3000
26.10.2021, 10:47
День добрый!
ПЛК154 соединен с ТРМ210 по RS485. В проекте участвуют несколько задатчиков температуры, с соответствующими ПИД-коэффициентами. В связи с этим есть необходимость включать при помощи ПЛК автонастройку ТРМ с последующим запоминанием коэффициентов. Получается следующее: после завершения автонастройки, обновленные коэффициенты перезаписываются программой, в результате чего успевает обновиться только пропорциональность, а интеграл и дифференциал - нет. Есть ли возможность на время автонастройки программно отключить переменные записи коэффициентов в ТРМ (в данном случае %QB11.1.1, %QB11.1.2, %QB11.1.3)? Или существуют другие варианты?
Во первых, у вас неправильно организована конфигурация, надо разнести чтение и запись в разные UMD с разными настройками, читать циклически, записывать по изменению.
Во вторых, присваивание переменных в регистры записи через MOVE, можно сделать по биту окончания автонастройки, либо отключать запись во время автонастройки.

Владислав Г.
27.10.2021, 10:15
Во первых, у вас неправильно организована конфигурация, надо разнести чтение и запись в разные UMD с разными настройками, читать циклически, записывать по изменению.
Во вторых, присваивание переменных в регистры записи через MOVE, можно сделать по биту окончания автонастройки, либо отключать запись во время автонастройки.

Спасибо, конфигурацию поменял, теперь запись и считывание происходит корректно. Единственное - при завершении автонастройки включается таймер ТР_0, который отключает автонастройку, ТРМ савит АТ в STOP, но не смотря на это индикатор АТ светится и автонастройка продолжает работать. Мне пришлось отключить RS (запуск/остановка регулирования), по завершению автонастройки, что помогло. Но может есть возможность отключать автонастройку без RS?

kondor3000
27.10.2021, 15:32
Спасибо, конфигурацию поменял, теперь запись и считывание происходит корректно. Единственное - при завершении автонастройки включается таймер ТР_0, который отключает автонастройку, ТРМ савит АТ в STOP, но не смотря на это индикатор АТ светится и автонастройка продолжает работать. Мне пришлось отключить RS (запуск/остановка регулирования), по завершению автонастройки, что помогло. Но может есть возможность отключать автонастройку без RS?

Как отключать, это не принципиально, главное, что бы работало правильно. Можно использовать логику, блоки сравнения, можно SEL и ещё куча вариантов.
Вы же в доп. программе используете язык ST, там в конструкции IF ... THEN можно напрограммировать что угодно))) и без всяких таймеров. Мне вообще непонятно, почему вы применяете блоки MOVE с ЕТ/ENO, умножение и деление квадратиками и используете CFC, вместо ST, где всё можно написать в 5-7 строк. Надо зная все исходные сигналы, правильно поставить задачу и реализовать её).
Вынести это всё в ФБ, а уже в PLC_PRG будут 2 ФБ, со входами и выходами в CFC для наглядности.

Владислав Г.
28.10.2021, 07:50
Мне вообще непонятно, почему вы применяете блоки MOVE с ЕТ/ENO, умножение и деление квадратиками и используете CFC, вместо ST, где всё можно написать в 5-7 строк. Надо зная все исходные сигналы, правильно поставить задачу и реализовать её).
Общая программа написана на ST. А в этой программе я отрабатывал управление ТРМ и CFC применен только для наглядности. Вопрос не в конструкциях и не в языке, а в том, что после остановки автонастройки она продолжает работать не смотря на то, что АТ = STOP.