Просмотр полной версии : Проблема с обменом данных ПЛК160 slave - СП310 master
fatlortroll
19.04.2024, 10:37
Помогите пожалуйста решить следующую проблему:
В проекте ПЛК такая структура данных:
VAR_CONFIG
sel_reciept AT %QW8.4.0 : WORD; (* Выбор рецепта *)
END_VAR
VAR_GLOBAL
sel_reciept AT %Q* : WORD; (* Выбор рецепта *)
END_VAR
QW8.4.0 отображается на регистр slave-а Modbus ПЛК.
При попытке записать в этот регистр из СП310 (Modbus master) его значение затирается на нулевое.
Но если в VAR_GLOBAL заменить %Q* на %QW8.4.0 (а в VAR_CONFIG, соответственно, закомментировать sel_reciept) то значение затираться перестаёт.
Как сохранить VAR_CONFIG, и избежать затирания его переменных?
Помогите пожалуйста решить следующую проблему:
В проекте ПЛК такая структура данных:
VAR_CONFIG
sel_reciept AT %QW8.4.0 : WORD; (* Выбор рецепта *)
END_VAR
VAR_GLOBAL
sel_reciept AT %Q* : WORD; (* Выбор рецепта *)
END_VAR
QW8.4.0 отображается на регистр slave-а Modbus ПЛК.
При попытке записать в этот регистр из СП310 (Modbus master) его значение затирается на нулевое.
Но если в VAR_GLOBAL заменить %Q* на %QW8.4.0 (а в VAR_CONFIG, соответственно, закомментировать sel_reciept) то значение затираться перестаёт.
Как сохранить VAR_CONFIG, и избежать затирания его переменных?
А какая цель использования конфигурационных переменных?
Вы уверены, что правильно поняли концепцию их применения?
fatlortroll
19.04.2024, 10:50
> А какая цель использования конфигурационных переменных?
Собрать все адресно-зависимые переменные в одну кучу. Иначе они разбросаны по проекту, и что-то найти-поменять достаточно нелегко.
> Вы уверены, что правильно поняли концепцию их применения?
Уже не уверен.
> А какая цель использования конфигурационных переменных?
Собрать все адресно-зависимые переменные в одну кучу. Иначе они разбросаны по проекту, и что-то найти-поменять достаточно нелегко.
Создайте в ресурсах новый список для переменных (или используйте уже имеющийся) и пишите их туда:
переменные, использующие прямую адресацию в область слейва конфигурации, по умолчанию будут глобальными (и энергонезависимыми)
fatlortroll
19.04.2024, 11:07
> переменные, использующие прямую адресацию в область слейва конфигурации, по умолчанию будут глобальными (и энергонезависимыми)
В справке CoDeSys-а по VAR_CONFIG это не указывается. Где можно подробнее почитать про эти переменные?
Разве энергонезависимость -- это не VAR_RETAIN ?
> переменные, использующие прямую адресацию в область слейва конфигурации, по умолчанию будут глобальными (и энергонезависимыми)
В справке CoDeSys-а по VAR_CONFIG это не указывается. Где можно подробнее почитать про эти переменные?
Разве энергонезависимость -- это не VAR_RETAIN ?
Забудьте по VAR_CONFIG - этот раздел совсем не для этого.
VAR_RETAIN - это да, но если вы добавили в конфигурацию Modbas(slave), то все переменные, указанные в этой области памяти будут энергонезависимыми без дополнительных указаний.
Почитать (https://docs.owen.ru/product/plk160m02/759/62750#topic-62756)
In_Da_Cher_A
19.04.2024, 12:09
QW8.4.0 отображается на регистр slave-а Modbus ПЛК.а откуда оно там? само по себе взялось?
что вообще вы наделали в конфигурации ПЛК? скрины давайте
fatlortroll
19.04.2024, 12:36
> а откуда оно там? само по себе взялось?
Нет, конечно, я его туда наконфигурировал. До него ещё три двухбайтовых переменных, потому оно и 8.4.0 .
> что вообще вы наделали в конфигурации ПЛК?
Добавил Modbus slave, в него двухбайтовую переменную. И на неё ссылаюсь из VAR_GLOBAL и VAR_CONFIG.
МихаилГл
19.04.2024, 12:52
> а откуда оно там? само по себе взялось?
Нет, конечно, я его туда наконфигурировал. До него ещё три двухбайтовых переменных, потому оно и 8.4.0 .
> что вообще вы наделали в конфигурации ПЛК?
Добавил Modbus slave, в него двухбайтовую переменную. И на неё ссылаюсь из VAR_GLOBAL и VAR_CONFIG.
Буквально вчера такое наблюдал. ModBus переменную из VAR_GLOBAL и VAR_CONFIG удалите, она уже определена в ModBus slave. (тут уже писали https://owen.ru/forum/showthread.php?t=39518&p=435541&viewfull=1#post435541)
In_Da_Cher_A
19.04.2024, 14:00
> а откуда оно там? само по себе взялось?
Нет, конечно, я его туда наконфигурировал. До него ещё три двухбайтовых переменных, потому оно и 8.4.0 .
> что вообще вы наделали в конфигурации ПЛК?
Добавил Modbus slave, в него двухбайтовую переменную. И на неё ссылаюсь из VAR_GLOBAL и VAR_CONFIG.
а причём здесь VAR_GLOBAL и VAR_CONFIG?
имя ей дайте в слейве.
в программе "переложите" её в другую переменню, и новую другую уже насилуйте, как возжелаете
fatlortroll
19.04.2024, 16:12
Расскажите, пожалуйста, какие поля задают имя переменной slave-а? Node ID в Base parameters, или Name в Module parameters ?
kondor3000
19.04.2024, 16:22
Расскажите, пожалуйста, какие поля задают имя переменной slave-а? Node ID в Base parameters, или Name в Module parameters ?
Вот скрин, переменным слейва даны имена Mask, Mask1, W1, W2, R1 75284
В программе имена используются как переменные, без всяких AT%QB12.1.0
Расскажите, пожалуйста, какие поля задают имя переменной slave-а? Node ID в Base parameters, или Name в Module parameters ?
Щелкай мышкой перед AT и вводи имя
https://owen.ru/forum/attachment.php?attachmentid=75285&d=1713533070
fatlortroll
19.04.2024, 16:25
> переменным слейва даны имена Mask, Mask1, W1, W2, R1
> Щелкай мышкой перед AT и вводи имя
Спасибо.
Вот как про это было догадаться без документированной инструкции? Сидеть, и тыкать мышью на каждый пиксель экрана?
kondor3000
19.04.2024, 17:02
Спасибо.
Вот как про это было догадаться без документированной инструкции? Сидеть, и тыкать мышью на каждый пиксель экрана?
Если вы начинающий, советую посмотреть 12 коротких обучающих видео https://www.youtube.com/watch?v=eSTmoNeLa7A
Отпадёт множество вопросов.
In_Da_Cher_A
19.04.2024, 17:44
> переменным слейва даны имена Mask, Mask1, W1, W2, R1
> Щелкай мышкой перед AT и вводи имя
Спасибо.
Вот как про это было догадаться без документированной инструкции? Сидеть, и тыкать мышью на каждый пиксель экрана?ээээээа мануал на Кодесис 2.3 - там разве нет ничего про такую вещь как Идентификатор переменной? Идентификатор Функционального блока?
ну какой-то странное у вас руководство попалось
ну и вагон макулатуры под названием Первый старт КДС2.3 и прочее прочее даже не буду вспоминать
fatlortroll
20.04.2024, 08:02
Да у меня на работе видео смотреть не очень льзя.
Спасибо за информацию!
> переменным слейва даны имена Mask, Mask1, W1, W2, R1
> Щелкай мышкой перед AT и вводи имя
Спасибо.
Вот как про это было догадаться без документированной инструкции? Сидеть, и тыкать мышью на каждый пиксель экрана? Вообще это в инструкции было.
fatlortroll
20.04.2024, 17:45
> Вообще это в инструкции было
Ну, значит я слепой.
И всё таки, для чего предназначены VAR_CONFIG?
> Вообще это в инструкции было
Ну, значит я слепой.
И всё таки, для чего предназначены VAR_CONFIG?
Для использования прямой адресации внутри нескольких экземпляров одного ФБ.
Наберите в справке "Variable Configuration"
fatlortroll
21.04.2024, 13:06
А я думал, для удобного собрания в одном месте всех адресуемых переменных.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot