Просмотр полной версии : PLC63 запись/чтение конфиг переменной
evgenykip
20.07.2023, 06:22
Здравствуйте, уважаемые форумчане !
Прошу помочь с доработкой проекта. Пытаюсь создать проект на языке "CFC", по аналогии с ОвенЛоджик.
Задача такая:
1) с дискретного входа включать/выключать переменную - "START".
2) из сетевой переменной - "ST1" включать/выключать переменную - "START".
3) чтобы после отключения питания сохранялось состояние переменной - "START".
4) чтобы каждое изменение состояния переменной - "START" было записано в переменную - "ST1" (чтобы видеть по сети и управлять), если такое возможно ( в овенлоджике так работает ).
В программе создан макрос - "ONE_TOUCH" аналогичный макросу из овенлоджик, только без аналогового выхода.
Так же, создана схема аналогичная макросу - "SelChgI" из овенлоджика, не совсем такая, но работает вроде бы так же ( требуется помощь )
evgenykip
20.07.2023, 14:44
В благодарность за помощь в решении моих вопросов, могу рассказать некоторые "фокусы" с трм132 ... :cool:
по поводу "фокусов" - обращайтесь в личку, прибор сняли с производства, но мало ли - вдруг у кого то будут возражения ...
kondor3000
20.07.2023, 17:20
Здравствуйте, уважаемые форумчане !
Прошу помочь с доработкой проекта. Пытаюсь создать проект на языке "CFC", по аналогии с ОвенЛоджик.
Задача такая:
1) с дискретного входа включать/выключать переменную - "START".
2) из сетевой переменной - "ST1" включать/выключать переменную - "START".
3) чтобы после отключения питания сохранялось состояние переменной - "START".
4) чтобы каждое изменение состояния переменной - "START" было записано в переменную - "ST1" (чтобы видеть по сети и управлять), если такое возможно ( в овенлоджике так работает ).
В программе создан макрос - "ONE_TOUCH" аналогичный макросу из овенлоджик, только без аналогового выхода.
Так же, создана схема аналогичная макросу - "SelChgI" из овенлоджика, не совсем такая, но работает вроде бы так же ( требуется помощь )
Немного переделал, выкинул макрос и сделал функц. блок (ФБ), это не лоджик и макросы никто не использует. В переменную ST1 сохраняются как в маску бит, все выходы.
Переменная ST1 должна сохраняться и без Retain по идее.
Макрос "SelChgI" можно упростить, например так, в виде ФБ, 69045скрин
Я просто для примера как можно сократить эту портянку.
И не забывайте "Порядок ~> В соответствии с потоком данных".
kondor3000
20.07.2023, 20:15
Я просто для примера как можно сократить эту портянку.
И не забывайте "Порядок ~> В соответствии с потоком данных".
У меня на скрине 4 элемента, то же самое)
evgenykip
21.07.2023, 05:31
Немного переделал, выкинул макрос и сделал функц. блок (ФБ), это не лоджик и макросы никто не использует. В переменную ST1 сохраняются как в маску бит, все выходы.
Переменная ST1 должна сохраняться и без Retain по идее.
Макрос "SelChgI" можно упростить, например так, в виде ФБ, 69045скрин
Не знаю что изменилось, но, в вашей версии программы:
1) энергонезависимость работает.
2) при подключении онлайн видно, что состояние ST1=1 (когда с дискретного входа включаю) и ST1=0 (когда выключаю).
3) захожу в конфигурационное меню прибора, а там ST1=00000, состояние не изменяется, и при изменении этих нулей кнопками тоже ничего не происходит с переменной в программе.
4) в облаке состояние переменной ST1 всегда равно нулю, не меняется (то есть по сети не работает, получается).
По поводу переменной ST1 я переписывался с поддержкой, сначала хотел просто создать переменную ретейн и присвоить ей сетевой регистр - не получилось, в поддержке сказали что нужно создать переменную в конфигурационном меню прибора ( в программе ), что она автоматически станет ретейн и будет иметь сетевой регистр, так и сделал, она также в программе состояние меняла, но в меню прибора были нули и по сети тоже, в поддержке ответили что у меня программа не позволяет записывать эту переменную, поэтому значения в сети не менялись.
Предполагаю, что в нее нельзя записывать из программы, а только из сети или из меню, поэтому не работает...
В общем отсоединил переменную ST1 от выхода схемы, оставил только на входе - таким образом она записывается по сети и из меню прибора, но мне нужно чтобы в нее записывалось текущее состояние выхода схемы - переменная "START"
Короче, что, нужно две переменные использовать, одну для управления по сети а вторую для того чтобы видеть текущее состояние ?
kondor3000
21.07.2023, 08:41
Не знаю что изменилось, но, в вашей версии программы:
1) энергонезависимость работает.
2) при подключении онлайн видно, что состояние ST1=1 (когда с дискретного входа включаю) и ST1=0 (когда выключаю).
3) захожу в конфигурационное меню прибора, а там ST1=00000, состояние не изменяется, и при изменении этих нулей кнопками тоже ничего не происходит с переменной в программе.
4) в облаке состояние переменной ST1 всегда равно нулю, не меняется (то есть по сети не работает, получается).
По поводу переменной ST1 я переписывался с поддержкой, сначала хотел просто создать переменную ретейн и присвоить ей сетевой регистр - не получилось, в поддержке сказали что нужно создать переменную в конфигурационном меню прибора ( в программе ), что она автоматически станет ретейн и будет иметь сетевой регистр, так и сделал, она также в программе состояние меняла, но в меню прибора были нули и по сети тоже, в поддержке ответили что у меня программа не позволяет записывать эту переменную, поэтому значения в сети не менялись.
Предполагаю, что в нее нельзя записывать из программы, а только из сети или из меню, поэтому не работает...
В общем отсоединил переменную ST1 от выхода схемы, оставил только на входе - таким образом она записывается по сети и из меню прибора, но мне нужно чтобы в нее записывалось текущее состояние выхода схемы - переменная "START"
Короче, что, нужно две переменные использовать, одну для управления по сети а вторую для того чтобы видеть текущее состояние ?
У меня в программе выходы записываются в переменную w1, а потом уже при изменении w1 разово записывается в ST1.
Думаю это проблемы в адресном пространстве ПЛК63-73, подобная тема уже была, поищите. Вам же скорее всего придётся брать 2 переменные.
Поэтому и не работаю с ПЛК63-73.
evgenykip
21.07.2023, 09:32
У меня в программе выходы записываются в переменную w1...
Благодарю за помощь. Если для вас будет полезна информация о которой я писал во втором сообщении, то в личку пишите.
evgenykip
21.07.2023, 11:21
В общем, сменил тип переменной "ST1" с uint на real стало работать, почти, как нужно:
1) Если менять состояние с дискретного входа, то переменная внутри программы работает, по сети и в меню прибора состояние не меняется.
2) Если менять состояние из меню прибора или по сети то ее состояние видно по сети и в меню прибора.
Хотя в обоих случаях при онлайн подключении в программе видно, что переменная записывается.
Криво конечно, но хоть так работает и то прогресс.
Целый проект приложил, если кому интересно.
1) Управление двумя котлами ( с собственной автоматикой, настенные или напольные ) по погоде, плюс время задержки включения второго котла по погоде ( чем больше минус температуры, тем меньше времени между включением первого и второго котлов ).
2) Отключение котлов и газового клапана ( (программа заточена на работу с клапаном КЗГЭМ и сигнализатором СЗ-1Р) при возникновении двух аварий ( утечка газа, пожар ).
3) Отображение на дисплее состояния котлов, времени включения котлов, состояние аварийных датчиков, Т подачи, Т наружная, Т уставки, реле давления подачи, состояние вкл/выкл.
4) Из меню конфигурации: коррекция Т, изменение уставок погодозависимого регулирования.
5) Включение/выключение одним нажатием кнопки на дискретном входе, и в облаке.
kondor3000
21.07.2023, 22:13
В общем, сменил тип переменной "ST1" с uint на real стало работать, почти, как нужно:
А вы пробовали для переменной ST1, параметр поставить оперативный?
У вас почему то во всех проектах в этой переменной параметр стоит конфигурационный и адреса разные.
evgenykip
22.07.2023, 06:09
А вы пробовали для переменной ST1, параметр поставить оперативный?
У вас почему то во всех проектах в этой переменной параметр стоит конфигурационный и адреса разные.
Мне нужно записывать переменную, поэтому конфигурационный параметр а не оперативный ( не пробовал, но вроде бы писать в переменную по сети нельзя если она оперативная, в понедельник проверю )
Проекта всего два я тут выкладывал и один из овенлоджика, а адреса разные потому что в первом случае был uint, а потом я изменил его на real.
У меня на скрине 4 элемента, то же самое)
Простите, если не поняли, но я ТС намекал как можно упростить...
Было 69069
Стало 69070
Здравствуйте, уважаемые форумчане !
Прошу помочь с доработкой проекта. Пытаюсь создать проект на языке "CFC", по аналогии с ОвенЛоджик.
Задача такая:
1) с дискретного входа включать/выключать переменную - "START".
2) из сетевой переменной - "ST1" включать/выключать переменную - "START".
3) чтобы после отключения питания сохранялось состояние переменной - "START".
4) чтобы каждое изменение состояния переменной - "START" было записано в переменную - "ST1" (чтобы видеть по сети и управлять), если такое возможно ( в овенлоджике так работает ).
В программе создан макрос - "ONE_TOUCH" аналогичный макросу из овенлоджик, только без аналогового выхода.
Так же, создана схема аналогичная макросу - "SelChgI" из овенлоджика, не совсем такая, но работает вроде бы так же ( требуется помощь )
Тута конкурс на самый длинный путь решения ?
Ну вот накой тут таймеры то ?
evgenykip
23.07.2023, 12:20
Тута конкурс на самый длинный путь решения ?
Ну вот накой тут таймеры то ?
Здравствуйте. Что имеете ввиду, где именно покажите ?
Здравствуйте. Что имеете ввиду, где именно покажите ?
В принципе kondor3000 в п#2 показал как без всяких таймеров. И про "конфигурационный" тоже.
69125
Писать в "конфиг" из проекта можно, но мутно (см. arm_specific/save_parameter). Про это либо прослушали (у техподдержки) и либо там стажер "техподдерживал".
В общем, сменил тип переменной "ST1" с uint на real стало работать, почти, как нужно:
Работать "почти" это никак. Real тут незачем.
Если не хочется возни с save_parameter, то простейший способ:
"оперативный" + явный ретайн.
Например:
var retain
ретайн_старт : ХХХ := ....;
end_var
var (*не ретайн !*)
init : bool; (*дефолтный фальсе*)
end_var
где-то в меню, оперативное, c ненапутанным адресом и доступное для изменения по сети
старт : XXX
---------------
if not init then (*где то в начале)
init := true;
старт := ретайн_старт;
end_if
ретайн_старт := старт;
Ретайн_старт нигде больше не трогаем
Пишем-читаем старт где угодно.
Всё.
Если батарейка жива - как часы.
(В квадратики - сами)
evgenykip
23.07.2023, 16:27
var retain
ретайн_старт : ХХХ := ....;
end_var
var (*не ретайн !*)
init : bool; (*дефолтный фальсе*)
end_var
где-то в меню, оперативное, c ненапутанным адресом и доступное для изменения по сети
старт : XXX
---------------
if not init then (*где то в начале)
init := true;
старт := ретайн_старт;
end_if
ретайн_старт := старт;
Ничего не понятно, но очень интересно ...
Писать в "конфиг" из проекта можно, но мутно (см. arm_specific/save_parameter). Про это либо прослушали (у техподдержки) и либо там стажер "техподдерживал".
С поддержкой я переписывался, а не разговаривал, они об этом мне не написали ничего, только что нужно создавать переменные в конфиг меню и они автоматически становятся ретейн и с сетевыми регистрами.
69125
Ваша ссылка не работает.
Это нормально для поддержки, они не обязаны знать не документированные ходы.
Добавлю, что батарейка влияет только на часы. Запись ретайн во влэш идёт на ёмкости конденсатора в БП по немаскируемому прерыванию от БП - напряжение пропало, сейчас будем выключаться.
Ваша ссылка не работает.
Это нормально для поддержки, они не обязаны знать не документированные ходы..
не документированные
Так ТП и предлагала использовать соответствующую библиотеку, насколько я понимаю.
Под ретэйн ТП видимо понимала, что значения с экрана сохраняются во флэш.
Так ТП и предлагала использовать соответствующую библиотеку...
.
..в поддержке сказали что нужно создать переменную в конфигурационном меню прибора ( в программе ), что она автоматически станет ретейн и будет иметь сетевой регистр, так и сделал, она также в программе состояние меняла, но в меню прибора были нули и по сети тоже, в поддержке ответили что у меня программа не позволяет записывать эту переменную, поэтому значения в сети не менялись....
Я пропустил про биб-ку?
..Под ретэйн ТП видимо понимала, что значения с экрана сохраняются во флэш.
Ну так и есть - в ТП эльфийский стажер не работавший "в полях" раз не видит сути стандартной задачи
..
Задача такая:
1) с дискретного входа..
2) из сетевой переменной..
3) сохранялось состояние..
4)..
Кратко : ретайн* и менять любого места (сеть/меню/проект)
*энергонезависимость, тип побоку
Я предложил простой способ.
Причем 4-е лишнее, т.к. является неотъемлемым свойством (при заказе омлета уточнять что "из яйца" не требуется обычно)
...
Добавлю, что батарейка влияет только на часы. Запись ретайн во влэш идёт на ёмкости конденсатора в БП по немаскируемому прерыванию от БП - напряжение пропало, сейчас будем выключаться.
Проверить сейчас не могу про сохранение ретайна без батарейки.
Но если всё так как Вы говорите, то мой вышеприведённый код становится еще более надежным))
evgenykip
24.07.2023, 07:46
А вы пробовали для переменной ST1, параметр поставить оперативный?
Сделал по вашему примеру, заменил схему с таймерами на то что вы предложили, но что то, видимо, неправильно сделал ...
С дискретного входа включается, из проекта/онлайн переменная "ST1" меняет свое состояние, но по сети ничего не происходит.
Из сети переменная "ST1" изменяет свое состояние, но в проекте/онлайн ничего не происходит, как будто это две разные переменные ...
Сделал по вашему примеру, заменил схему с таймерами на то что вы предложили, но что то, видимо, неправильно сделал ...
С дискретного входа включается, из проекта/онлайн переменная "ST1" меняет свое состояние, но по сети ничего не происходит.
Из сети переменная "ST1" изменяет свое состояние, но в проекте/онлайн ничего не происходит, как будто это две разные переменные ...
Так это и есть две разных переменные - одна объявлена в конфигурации, вторая - в PLC_PRG
kondor3000
24.07.2023, 08:14
Сделал по вашему примеру, заменил схему с таймерами на то что вы предложили, но что то, видимо, неправильно сделал ...
С дискретного входа включается, из проекта/онлайн переменная "ST1" меняет свое состояние, но по сети ничего не происходит.
Из сети переменная "ST1" изменяет свое состояние, но в проекте/онлайн ничего не происходит, как будто это две разные переменные ...
Вот так надо, этот кусок инициализации выделен на скрине, проверьте с ним и без него69132
Если будет работать без него, то переменная ST1 и сама Retain.
evgenykip
24.07.2023, 09:27
Вот так надо, этот кусок инициализации выделен на скрине, проверьте с ним и без него
Если будет работать без него, то переменная ST1 и сама Retain.
Энергонезависимость не работает.
По сети работает.
С дискретного входа работает.
kondor3000
24.07.2023, 09:50
Энергонезависимость не работает.
По сети работает.
С дискретного входа работает.
И с блоком и без блока не работает? Смотрите переменную ST1 и ST2
evgenykip
24.07.2023, 09:54
И с блоком и без блока не работает? Смотрите переменную ST1 и ST2
ST1 - оперативная переменная
ST2 - ретейн переменная
kondor3000
24.07.2023, 09:59
ST1 - оперативная переменная
ST2 - ретейн переменная
Сделайте как пишу и напишите, что в переменных c блоком и без блока инициализации.
evgenykip
24.07.2023, 10:30
Сделайте как пишу и напишите, что в переменных c блоком и без блока инициализации.
Разница с блоком и без в том, что без блока при вкл с дискретного входа пишутся обе переменные, а при вкл по сети пишется только "ST2".
В обоих случаях энергонезависимость не работает.
kondor3000
24.07.2023, 10:45
Разница с блоком и без в том, что без блока при вкл с дискретного входа пишутся обе переменные, а при вкл по сети пишется только "ST2".
В обоих случаях энергонезависимость не работает.
Вы упростили схему, и выкинули 1 блок, присвоение из ST1 в START, возьмите мой последний проект и проверьте на нём
evgenykip
24.07.2023, 10:57
Вы упростили схему, и выкинули 1 блок, присвоение из ST1 в START, возьмите мой последний проект и проверьте на нём
Никакой разницы нет.
По-прежнему нет энергонезависимости.
(уезжаю на час, когда приеду смогу продолжить испытания)
kondor3000
24.07.2023, 10:58
Никакой разницы нет.
По-прежнему нет энергонезависимости.
выложил 2_3 проект, вы торопитесь)
Проверить работу энергонезависимой памяти можно просто добавив в RETAIN новую переменную, которая нигде не записывается, записать просто в неё руками число и проверить.
evgenykip
24.07.2023, 12:51
выложил 2_3 проект
После заливки проекта в контроллер, при включении питания, переменная имеет значение = 1, а надо чтобы было = 0.
При выключении с дискретного входа, после выкл/вкл питание переменная сохраняет = 0, после повторного включения с дискретного входа и выкл/ вкл питание переменная сохраняет = 1.
При переменная на выходе с дискретного входа = 0, и запись из сети, то переменная = 1, после выкл/вкл питание состояние переменной = 0.
То есть не работает энергонезависимость сетевой переменной, а с дискретного входа работает.
kondor3000
24.07.2023, 13:09
После заливки проекта в контроллер, при включении питания, переменная имеет значение = 1, а надо чтобы было = 0.
При выключении с дискретного входа, после выкл/вкл питание переменная сохраняет = 0, после повторного включения с дискретного входа и выкл/ вкл питание переменная сохраняет = 1.
При переменная на выходе с дискретного входа = 0, и запись из сети, то переменная = 1, после выкл/вкл питание состояние переменной = 0.
То есть не работает энергонезависимость сетевой переменной, а с дискретного входа работает.
Тяжело с вами, вы даже написать не можете нормально, прочтите сами, я вообще ничего не понял.
Проверить работу энергонезависимой памяти можно просто добавив в RETAIN новую переменную, которая нигде не записывается, записать просто в неё руками число и проверить. Это вы можете сдалать?
evgenykip
24.07.2023, 13:24
Тяжело с вами, вы даже написать не можете нормально, прочтите сами, я вообще ничего не понял.
1) Запись с дискретного входа работает и сохраняет свое состояние после выкл/вкл питание.
2) Запись по сети работает, но не сохраняет свое состояние после выкл/вкл питание.
evgenykip
24.07.2023, 13:25
Проверить работу энергонезависимой памяти можно просто добавив в RETAIN новую переменную, которая нигде не записывается, записать просто в неё руками число и проверить. Это вы можете сдалать?
Нужно в конфиг меню добавить переменную для проверки, или каким образом ?
Вы меня извините за недопонимание, но я кодесис всего две недели занимаюсь, с переменными вообще ничего не понятно, где читать тоже не понятно ...
По аналогии с овенлоджиком пытаюсь делать ...
В первом проекте, который я выкладывал, схема с тригерами ( они ведь тоже ретейн ) сохранение работало же .
И сейчас в вашей схеме, с дискретного входа тоже сохранение работает.
В общем, добавил в конфиг меню переменную конфигурационную, вывел на дисплей ( иначе она не появляется в меню прибора ), записываю кнопками значение в нее => выкл/вкл питание => значение сохраняется.
Переменные, ранее добавленные: X1, Y1, X2, Y2, X3, Y3, X4, Y4 ( конфигурационные переменные ) в меню конфигурации, пишутся по сети и кнопками, сохраняются после выкл/вкл питание прибора.
kondor3000
24.07.2023, 15:26
1) Переменные в конфигурации слейва, являются глобальными и RETAIN.
2) Переменные которые не в конфигурации, что бы стали RETAIN, объявляют так 69152 Заметьте, ей присвоена 1 и при первом включении, будет 1. А при последующих, что присвоите в работе. Если нужен 0, то убрать присвоение 1.
3) Если переменные сохраняются (Хоть одна), значит RETAIN работает (запись значения при выключении питания).
А конкретная переменная ST1 не сохраняется, значит её при включении перезаписывает или мастер или ваша программа. Надо найти откуда.
4) Ввод новой переменной ST1_ret для этого и сделан. В работе в неё записывается из ST1.
А при перезагрузке из ST1_ret записывается в ST1.
Так как вы всё время утверждаете, что RETAIN не работает, а оказывается, все остальные переменные сохраняются.
kondor3000
24.07.2023, 20:48
Короче проверил верхнюю часть кода на другом ПЛК. Код из проекта 2_3.
1) Состояние самих кнопок не сохраняется, но переменная ST1 сохраняется в конфигурации.
2) Инициализацию можно выбросить, всё равно ST1 перезаписывает ST1_ret. И переменную ST1_ret тоже выбросить.
3) ST1 управляется и по сети и с кнопок, соответственно при перезагрузке остаётся предыдущее состояние.
То есть всё работает.69155
evgenykip
25.07.2023, 04:50
Так как вы всё время утверждаете, что RETAIN не работает, а оказывается, все остальные переменные сохраняются.
Извините, что возникло недопонимание, но я не писал что ретейн не работает, я писал о том что не работает сохранение состояния ( по какой то причине ).
evgenykip
25.07.2023, 05:39
То есть всё работает.69155
1) Переменная ST1 записывается в (= 1) с дискретного входа и по сети.
2) После выключения/включения питания, переменная ST1 перезаписывается переменной w1 в (= 0) и поэтому не сохраняет состояние (= 1)
Вот поэтому я и писал, что энергонезависимость не работает ...
evgenykip
25.07.2023, 05:47
Может быть очистить поля в настройках переменной ?
нет, проверил, не влияет ...
все, я уехал сегодня на весь день.
вечером смогу продолжить.
kondor3000
25.07.2023, 08:15
Извините, что возникло недопонимание, но я не писал что ретейн не работает, я писал о том что не работает сохранение состояния ( по какой то причине ).
Ещё раз, у вас не сохраняется переменная ST1, так и пишите что ST1 не сохраняется. Пишите конкретно по проблеме всегда.
Код проверен, у меня ST1 сохраняется. w1 при включении ничего не перезаписывает.
Сделайте очистить всё, компилировать всё, сохраните проект и загрузите снова. ( очистку надо делать периодически)
evgenykip
25.07.2023, 14:42
Ещё раз, у вас не сохраняется переменная ST1, так и пишите что ST1 не сохраняется. Пишите конкретно по проблеме всегда.
Код проверен, у меня ST1 сохраняется. w1 при включении ничего не перезаписывает.
Сделайте очистить всё, компилировать всё, сохраните проект и загрузите снова. ( очистку надо делать периодически)
Да, ST1 не сохраняется ... Сделал очистить все, компилировать все, загрузил, ничего не изменилось.
Попробую в другой контроллер залить и проверить.
Проверил в другом контроллере, никаких изменений, все то же самое происходит, ST1 не сохраняется.
Ну еще недельку поматаетесь, потом подумаете про простые решения и последовательную проверку исходных и задачи.
evgenykip
26.07.2023, 05:14
Ну еще недельку поматаетесь, потом подумаете про простые решения и последовательную проверку исходных и задачи.
Я ваш код в изложенном вами виде не понимаю, в нормальном то виде с трудом ...
Мог бы кодить, очевидно, использовал бы код, а не блоки.
Как из вашего кода создать функциональный блок ?
1) Есть переменная, которая добавлена в конфигурационное меню, оперативная, ( для чтения и записи состояния вкл/выкл по сети ) - "ST1" (UINT).
2) Есть переменная в которую записывается из дискретного входа, ( для вкл/выкл с дискретного входа ) - "var2_i" (UINT).
3) Есть переменная, которая запускает программу - "START" (BOOL), ( в принципе можно START убрать и ST1 преобразовывать в BOOL и дальше использовать для запуска программы )
evgenykip
26.07.2023, 05:43
А вот фокусы с ТРМ132
... уехал до вечера ...
Ну тогда для начала подтвердите что ретайн вообще работает.
Новый ПУСТОЙ проект и 1(одна) переменная:
var retain
x : int := 123;
end_var
3алили, запустили, руками поставили 777, отключились, выключили питание, включили питание, подождали, подключились.
Что в x ?
И да, не сделаете/не будет ответа - нет смысла дальше что либо показывать
Про фокусы непонятно. Вы про обрыв?
Могу предложить другой фокус - в народе называется "недолго светло и чёрный экран"
Выполняется несложно - берете ножницы и режете провод на клемму 1 или 2
evgenykip
26.07.2023, 11:48
Про фокусы непонятно. Вы про обрыв?
Могу предложить другой фокус - в народе называется "недолго светло и чёрный экран"
Выполняется несложно - берете ножницы и режете провод на клемму 1 или 2
Нет, программа из плк залита в трм132, если интересно то в личку пишите.
evgenykip
26.07.2023, 11:54
Ну тогда для начала подтвердите что ретайн вообще работает.
Новый ПУСТОЙ проект и 1(одна) переменная:
var retain
x : int := 123;
end_var
3алили, запустили, руками поставили 777, отключились, выключили питание, включили питание, подождали, подключились.
Что в x ?
И да, не сделаете/не будет ответа - нет смысла дальше что либо показывать
Поясните, дело в том, что если я объявляю переменную, то я не могу писать в нее по сети и руками, ее нужно добавлять в конфигурационное меню, но тогда ее не нужно объявлять в переменных, как делать ?
Как руками записывать переменную "х" ?
Объявить ретейн переменную, создать переменную в конфиг меню, в проекте писать из переменной конфиг в переменную ретейн ? правильно ?
evgenykip
26.07.2023, 12:20
Ну тогда для начала подтвердите что ретайн вообще работает.
Новый ПУСТОЙ проект и 1(одна) переменная:
var retain
x : int := 123;
end_var
3алили, запустили, руками поставили 777, отключились, выключили питание, включили питание, подождали, подключились.
Что в x ?
Складывается впечатление, что я что то не так делаю. В общем, после заливки в контроллер, переменная х=123, переменная ST1=0,
после выкл/вкл питание переменная "ST1" сама перезаписывает переменную "x" в значение =0
Если я потом из меню конфигурации записываю значение (например =9) в "ST1", то оно записывается в "ST1" и в "x", после выкл/вкл питание значение опять становится =0
Складывается впечатление, что я что то не так делаю. В общем, после заливки в контроллер, переменная х=123, переменная ST1=0,
после выкл/вкл питание переменная "ST1" сама перезаписывает переменную "x" в значение =0
Если я потом из меню конфигурации записываю значение (например =9) в "ST1", то оно записывается в "ST1" и в "x", после выкл/вкл питание значение опять становится =0
И чему Вы удивляетесь? Ведь "ST1" не энергонезависимая, вот потому "ST1" при включении =0 и естественно перезаписывает "х".
Нужно при включении питания, сразу в первом цикле программы, записать в "ST1" значение ретайн переменной "х"
А уж затем можно присваивать x:= ST1 для сохранения новых значений в ретайн переменной "х"
69224
evgenykip
26.07.2023, 13:46
В общем выяснил, оказывается когда переменная (которая в конфигурационном меню) является оперативной то она не сохраняется, а когда она конфигурационная то она сохраняется.
evgenykip
26.07.2023, 14:09
И чему Вы удивляетесь? Ведь "ST1" не энергонезависимая, вот потому "ST1" при включении =0 и естественно перезаписывает "х".
Нужно при включении питания, сразу в первом цикле программы, записать в "ST1" значение ретайн переменной "х"
А уж затем можно присваивать x:= ST1 для сохранения новых значений в ретайн переменной "х"
69224
Здравствуйте. При такой схеме не дает записывать переменную ST1 из меню прибора, ну и соответственно не даст записать ее по сети.
Здравствуйте. При такой схеме не дает записывать переменную ST1 из меню прибора, ну и соответственно не даст записать ее по сети.
Даст, даст!
Попробуйте..
ЗЫ.
Верхний блок MOVE работает однократно и только в момент старта программы, в дальнейшем не влияет на содержимое ST1
evgenykip
26.07.2023, 14:19
Даст, даст!
Попробуйте..
Мой касяк, извините.
Интересно, а чего вы хотели? Оперативная с ограничением 100, х = 123. Ничего не смущает ?
з.ы. конфигурации ЗЛО, на которой все и падают в непонимании :)
evgenykip
26.07.2023, 14:27
Интересно, а чего вы хотели? Оперативная с ограничением 100, х = 123. Ничего не смущает ?
Капец, где ты раньше был ...
Благодарю за внимание ! Сейчас попробую.
Попробовал, работает ! В переменную "х" я теперь могу писать откуда угодно ?
evgenykip :) да просто наблюдаю тему и удивляюсь... Следующим крахом мозга будет "почему не работает групповой запрос по Modbus?" :)
Это ПЛК63 потому что :)
evgenykip
26.07.2023, 14:36
evgenykip :) да просто наблюдаю тему и удивляюсь... Следующим крахом мозга будет "почему не работает групповой запрос по Modbus?" :)
Это ПЛК63 потому что :)
Да нет, мне не нужен групповой запрос, все работает в облаке и так, кроме этой переменной.
Хотя там у всех управляемых переменных 03 и 16 атрибуты и все работает, а когда ставлю 03 и 06 (ну я тему читал и думал что в этом проблема) то не работает ...
Суть этих манипуляций не в ПЛК63, он у меня один всего, суть в том что ТРМ132 много и есть способ залить программу из ПЛК63.
Так то мне и ПР200 хватает везде, просто хочу не нужные ТРМ использовать.
А своими силами можно залить в ТРМ132 прошивку ПЛК ? что на счет лицензий CodeSys в данном случае?
что-то не уверен я, что можно просто так накатить прошивку с CodeSys на ТРМ-ку
evgenykip
26.07.2023, 14:50
А своими силами можно залить в ТРМ132 прошивку ПЛК ? что на счет лицензий CodeSys в данном случае?
что-то не уверен я, что можно просто так накатить прошивку с CodeSys на ТРМ-ку
Не можно, а нужно ! Я придумал способ, совсем не сложный, без паяльника можно обойтись и без программатора, средствами овен программ и некоторых других.
ТРМ132 это по железу тоже самое что и ПЛК63, там в нижней части прибора есть контроллер в котором зашит
(вернее в нижней части идентификатор прошивки, а в верхней идентификатор прибора, но не суть), который смотрит программа при прошивке.
Вот можно эту овен программу наипать ... чтобы прошить программу от ПЛК63.
Кодесис конечно нельзя, другая овен программа для этого - программа тиражирования.
1) Нужно слить прошитую в ПЛК63 программу, программой тиражирования.
2) Нужно слить программу ТРМ132, программой тиражирования.
3) Полученные бинарные файлы открыть в любом хекс редакторе и переписать 4 строки из файла трм132 в файл плк63.
(необходимые строки содержат информацию о приборе, которую смотрит программа тиражирования и сопоставляет с подключенным прибором)
4) Прошить программой тиражирования модифицированный файл плк63 в ТРМ132.
5) Кайфовать от превращения ненужных контроллеров в нужные.
kondor3000
26.07.2023, 15:49
Не можно, а нужно ! Я придумал способ, совсем не сложный, без паяльника можно обойтись и без программатора, средствами овен программ и некоторых других.
ТРМ132 это по железу тоже самое что и ПЛК63, там в нижней части прибора есть контроллер в котором зашит
(вернее в нижней части идентификатор прошивки, а в верхней идентификатор прибора, но не суть), который смотрит программа при прошивке.
Вот можно эту овен программу наипать ... чтобы прошить программу от ПЛК63.
Кодесис конечно нельзя, другая овен программа для этого - программа тиражирования.
Это всё хорошо, только это у вас их полно, а если их нет то и толку от этой инфы никакого. Хорошо хоть с проектом разобрались)
evgenykip
26.07.2023, 15:50
Это всё хорошо, только это у вас их полно, а если их нет то и толку от этой инфы никакого.
Есть еще фокусы, для более современных железяк ...
Тут не буду писать, тему закроют ...
Вообще, таким способом можно любую железяку переделать.
Хорошо, наверное это был намек ? :cool:
Предлагаю железяки на выбор, каждому - кто дал дельную подсказку, отправлю, БЕСПЛАТНО одну железяку на выбор, есть лишних немного:
1) модули расширения -ПРМ220.1(в упаковке, 1шт), ПРМ24.1(в упаковке, 1шт), ПРМ24.3, ПРМ220.2(в упаковке, 1шт) = ПРМ24.3 - ПОЛУЧЕНО - melky
2) панель оператора - ИПП120 (Б/У не долго, 2шт)
3) блоки питания какие то не помню
4) панель оператора - ИП320 (Б/У, но не работали, просто включенные были не долго, 2 шт) = 1шт ПОЛУЧЕНО - kondor, 1 шт ПОЛУЧЕНО -west
5) ПЛК110-60 (Б/У не долго в включенном состоянии, 1 шт.) = ПОЛУЧЕНО - kondor
6) ТРМ1 (Б/У, 3 шт)
7) 2ТРМ1 (Б/У, 1 шт.)
8) модем - ПМ01-220 (Б/У в пассивном состоянии, 2шт.) = 1шт. ПОЛУЧЕНО - kondor, 1 шт. ПОЛУЧЕНО - melky
9) ТРМ32-Щ4.01.00 ( Б/У, 2 шт.)
10) НПТ-1 (Б/У, 3шт.) = 2шт ПОЛУЧЕНО, 1шт ПОЛУЧЕНО - kondor
завтра еще дополню список железяк, все рабочее,
только ОТПРАВКА ЗА ВАШ СЧЕТ. Кому что нужно пишите в личку:
приоритет циферами обозначен, но постараюсь никого не обидеть.
1) kondor3000
2) petera
3) valenok
4) melky
5) west
kondor3000
26.07.2023, 17:16
Есть еще фокусы, для более современных железяк ...
Тут не буду писать, тему закроют ...
Вообще, таким способом можно любую железяку переделать.
Хорошо, наверное это был намек ? :cool:
Предлагаю железяки на выбор, каждому - кто дал дельную подсказку, отправлю одну железяку на выбор ( есть лишних немного, модули расширения -ПРМ220.1(в упаковке, 1шт), ПРМ24.1(в упаковке, 1шт), ПРМ220.2(в упаковке, 1шт), панель оператора - ИПП120 (Б/У не долго, 2шт), блоки питания какие то не помню, панель оператора - ИП320(Б/У, но не работали, просто включенные были не долго, 2 шт), все рабочее,
Спасибо конечно, мне ничего из этого не надо. Помогаю из интереса, а не для выгоды.
evgenykip
26.07.2023, 17:22
Спасибо конечно, мне ничего из этого не надо. Помогаю из интереса, а не для выгоды.
А я от чистого сердца, чтобы помогавшим стало немного веселее !
evgenykip
26.07.2023, 17:49
Это всё хорошо, только это у вас их полно, а если их нет то и толку от этой инфы никакого.
Вообще на этом можно денег сделать, объявление у себя в городе на авито или еще где даете и вперед.
По всяким конторам их пруд пруди, просто они на столько кривые в работе, но народ их накупил и не знает до сих пор что с ними делать.
А теперь, с учетом овенклауд, вторую жизнь дать железякам сам бог велел.
Например, я, собираю небольшие пультики, в пластиковых боксах с прозрачными крышками,
юр лицам для встроенных котельных, погодозависимая автоматика с удаленным управлением и диспетчерезацией.
Позже дособеру этот и сфоткаю.
С ПР200 себестоимость выходит в примерно 50000р (включая ПМ210, два датчика температуры, датчик давления, два датчика пожарки, два датчика -СО и СН4, реле давления газа, кабели, кнопки, и подобное, ну и пластиковый бокс на 24 модуля двух рядный), на данный момент ПР200 стоит около 20000, если ПР заменить ТРМ132 то очень весело получается.
А я от чистого сердца, чтобы помогавшим стало немного веселее !
Жарко, может светлым нефильтрованным?
evgenykip
26.07.2023, 17:56
светлым нефильтрованным?
А такое бывает разве ? :)
НЕТ, я серьезно, парни, железяки без дела лежат у меня и вряд ли я их буду использовать в ближайшем будущем.
Завтра еще список (https://owen.ru/forum/showthread.php?t=38172&p=413022&viewfull=1) дополню.
evgenykip
27.07.2023, 08:57
Парни, приветствую.
Правильно я сделал, нет, посмотрите, пожалуйста ?
kondor3000
27.07.2023, 11:03
Парни, приветствую.
Правильно я сделал, нет, посмотрите, пожалуйста ?
Не совсем, зачем было булевую START, превращать в Retain (INT) и лепить везде INT_TO_BOOL. Работать будет, но это не совсем правильно. Я бы сделал Retain отдельную переменную. А START оставил булевым.
evgenykip
27.07.2023, 11:13
Не совсем, зачем было булевую START, превращать в Retain (INT) и лепить везде INT_TO_BOOL. Работать будет, но это не совсем правильно. Я бы сделал Retain отдельную переменную. А START оставил булевым.
Ну с этим понятно, просто какая разница сразу переменную преобразовывать или писать из одной переменной в другую а потом преобразовывать ... Ну а в принципе, схема правильная, с перезаписью переменной ST1 ?
kondor3000
27.07.2023, 13:08
Ну с этим понятно, просто какая разница сразу переменную преобразовывать или писать из одной переменной в другую а потом преобразовывать ... Ну а в принципе, схема правильная, с перезаписью переменной ST1 ?
Правильная, проверьте ещё раз в ПЛК.
А разница есть, по схеме в RETAIN присваивается 1 раз и 1 раз INT_TO_BOOL, а у вас 5-7 раз INT_TO_BOOL
evgenykip
27.07.2023, 13:57
Доделал пультик, приложил фотки:
приложил фотки:
датчик на CH4 очень низко висит (не ниже 20см от потолка положено).
за монтаж шкафа "двойка" с минусом.
.., посмотрите, пожалуйста ?
А какой сакральный смысл в записи текста в ascii-hex-кодах для 63 ?
Ну и в общем напоминает взрыв на макаронной фабрике.
И "по потоку" до сих пор так и не сделали - какой-то религиозный запрет ?
ONE_touch порадовал, но можно было еще правее и ниже разместить, место - было.
Graph_line_**** - это для игры "найди сколько-то отличий" ?
evgenykip
28.07.2023, 06:16
датчик на CH4 очень низко висит (не ниже 20см от потолка положено).
за монтаж шкафа "двойка" с минусом.
Что положено, а что покладено мы и сами знаем, там потолок еще не доделан, не видно что ли на фото ?
evgenykip
28.07.2023, 06:18
А какой сакральный смысл в записи текста в ascii-hex-кодах для 63 ?
Ну и в общем напоминает взрыв на макаронной фабрике.
И "по потоку" до сих пор так и не сделали - какой-то религиозный запрет ?
ONE_touch порадовал, но можно было еще правее и ниже разместить, место - было.
Graph_line_**** - это для игры "найди сколько-то отличий" ?
Ни одного вопроса не понял.
evgenykip
28.07.2023, 07:02
3 железяки отправлю в выходные.
Больше нет желающих ? Активнее, парни !
02evgenykip, а ещё можно и так:
было 69260
стало 69261
Больше нет желающих ? Активнее, парни !
Да как-то неудобно что-ли...
Интересно, а для чего одновременно и ПМ210 и iRZ ?
evgenykip а ПРМ-ки с аналоговыми входами нету? :), а то у меня ПР200 + 8АС висит, так как оно есть, покупать ПРМ-ку в замену ну никакого смысла...
evgenykip
28.07.2023, 09:32
02evgenykip, а ещё можно и так:
было 69260
стало 69261
Благодарю за подсказку, для меня такое еще не привычно после овенлоджика, но удобно - да.
evgenykip
28.07.2023, 09:34
Интересно, а для чего одновременно и ПМ210 и iRZ ?
IRZ - это модель, которая работает с их облаком https://bridge.irz.net/, прозрачный канал связи создает, в программе считывания узлов учета забиваешь айпишник и порт который облако выдает и считываешь показания, очень удобно и без заморочек.
Я считываю газовые счетчики - ПРИНЦ, и теплосчетчики - ПУЛЬСАР.
Если бы ОВЕН добавили такую функцию к своим модемам, то вообще огонь был бы !
evgenykip
28.07.2023, 09:35
Да как-то неудобно что-ли...
А чего неудобного то ? Участие принимал - получи железяку !
evgenykip
28.07.2023, 09:43
ПРМ-ки с аналоговыми входами нету?
Ну как нету то, там ПРМ-220.2 это и есть, по-моему, с аналоговыми входами /выходами.
Забирай. Есть на 24 вольта если нужно ...
evgenykip
28.07.2023, 09:47
Парни, давайте активнее ! В выходные отправлять буду, чтобы не затягивать процесс ...
Адреса и способ доставки в личку пишем.
Я ко всем обращался. valenok, petera ?
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot