- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
M340 групповое чтение каналов
Модераторы: Глоб.модераторы, Специалисты SE
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
M340 групповое чтение каналов
Здравствуйте, друзья!
Разрабатываю большой проект с использованием двух м580 на 4 стойках каждый и двух м340 на 2 стойках каждый. Так как каналов много, интересует возможность группового чтения каналов.
Описание. У м580 при добавлении модуля в конфигурация автоматом создается структура, я эту структуру перелопачиваю посредством рукописного dfb и получаю на выходе группу ddt переменных. Это необходимо для связки с citect, в котором уже есть своя библиотека джинов и чтоб максимально упростить разработку скады подгоняю структуру в плк под структуру в citect.
А вот м340 нет возможности при добавлении в конфигурацию получить готовую структуру. Пробовал сам объявлять массив формата array[0..8] of int по адресу %iw0.2.0, так к адресу элементов массива прибавляется лишний 0 (%iw0.2.1.0) - компилятор на такую конструкцию ругается. Еще как вариант пробовал через цикл опросить группу каналов через абсолютный адрес, компилятор на такую конструкцию ругается.
Может кто сталкивался с такойзадачкой? Как ее можно решить?
Разрабатываю большой проект с использованием двух м580 на 4 стойках каждый и двух м340 на 2 стойках каждый. Так как каналов много, интересует возможность группового чтения каналов.
Описание. У м580 при добавлении модуля в конфигурация автоматом создается структура, я эту структуру перелопачиваю посредством рукописного dfb и получаю на выходе группу ddt переменных. Это необходимо для связки с citect, в котором уже есть своя библиотека джинов и чтоб максимально упростить разработку скады подгоняю структуру в плк под структуру в citect.
А вот м340 нет возможности при добавлении в конфигурацию получить готовую структуру. Пробовал сам объявлять массив формата array[0..8] of int по адресу %iw0.2.0, так к адресу элементов массива прибавляется лишний 0 (%iw0.2.1.0) - компилятор на такую конструкцию ругается. Еще как вариант пробовал через цикл опросить группу каналов через абсолютный адрес, компилятор на такую конструкцию ругается.
Может кто сталкивался с такойзадачкой? Как ее можно решить?
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
M340 групповое чтение каналов
В конфигурации контроллера выберете Memory Management - Mixed Topologica and State RAM.
Можно будет назначить модулям аналогового ввода адрес типа %IW и читать их прямым обращением к памяти (например %IW0[индекс = адресу]), либо привязать массивы к адресам модулей.
Можно будет назначить модулям аналогового ввода адрес типа %IW и читать их прямым обращением к памяти (например %IW0[индекс = адресу]), либо привязать массивы к адресам модулей.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
M340 групповое чтение каналов
leon78, такой вопрос. Как я понял каждый модуль после активации state ram будет иметь адрес каналов не вида %iw[Rack]. [slot]. [channel], а последовательно %iw1... 8, следующий модуль 9...16?
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
M340 групповое чтение каналов
%iw[Rack]. [slot]. [channel] сохраниться (наверное, лучше проверить).
Адрес первого канала модуля задается в окне конфигурации модуля (на скриншоте слева внизу), его можно менять.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
M340 групповое чтение каналов
leon78, почему у вас в примере используется %iw0?
При создании секции в dfb данная конструкция подсвечивается как ошибочная?
При создании секции в dfb данная конструкция подсвечивается как ошибочная?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
M340 групповое чтение каналов
Поставьте галочку Tools - Project Settings - Variables - Directly represented array variables
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
M340 групповое чтение каналов
не помогло, кстати цпу р34 1000, может в этом дело...
Кстати в цикле можно использовать конструкцию
Код: Выделить всё
ch[i] :=%iw[Rack].[slot].[i]
Кстати указанный вами пример работает всекции mast, авот в секции dfb подчеркивается...
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
M340 групповое чтение каналов
Не знаю, попробуйте.
Не уверен, что внутри DFB можно использовать адреса памяти, кроме системных %SW и %S.
Не уверен, что внутри DFB можно использовать адреса памяти, кроме системных %SW и %S.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
M340 групповое чтение каналов
остановился покачто на использовании массива в переменных.
А вот вопрос... Где бы можно было почитать про косвенную адресацию на плк модикон?
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
M340 групповое чтение каналов
В хелп "References to Data Instances by Address"megavolt86 писал(а): ↑04 июн 2020, 11:59 А вот вопрос... Где бы можно было почитать про косвенную адресацию на плк модикон?
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.