Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Somachine
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Страницы: 1, 2, 3, 4, 5, 6
ProFigisT
UPD: достучался до 172-х в локалке, просто сменил протокол Ethernet/IP, который стоит по умолчанию на Modbus TCP. Остался вопрос как скормить внешние адреса, чтобы обойтись без замены оборудования и организации VPN.
Se_Sib
Цитата(ProFigisT @ 10.5.2019, 16:20) *
......Остался вопрос как скормить внешние адреса.......

Об этом я не подумал, такое контроллеры M2xx не умеют.
ProFigisT
Цитата(Se_Sib @ 13.5.2019, 11:55) *
Об этом я не подумал, такое контроллеры M2xx не умеют.

А могли бы Вы узнать, как с этим дела у М172-го? Подумал поменять М251 на М172, поэкспериментировал: в локалке опрашивает, по внешнему IP - нет, хотя и не ругается при компиляции. Хотелось бы узнать наверняка возможно или нет со 172-м... Спасибо.
ed.maslov
Добрый день, коллеги. Ищу писателя для М241. Или подсказку куда обратиться. Сам работаю в основном с ОМРОНОМ, обещаю научиться общению со Шнайдером при первом свободном времени.Сейчас времени нет, к сожалению. Задача небольшая, в логику писателю можно будет не вникать - могу донести аля вход, выход, таймер, и т.д.
Писать на почту ed.maslov@gmail.com либо по тел. +79163495122 Эдуард.
Как говорил знаменитый сатирик - " размеры моей благодарности будут безграничны в пределах разумного."

С ув. Ильич.
rainproof
Возникла проблема при работе в SoMachine 4.3
При запуске симулятора - при попытке старта - возникает программное исключение Licence File missing.
Хотя лицензия есть, и активна.
Пробовал переустанавливать менеджер лицензий, потом - переустановил SoMachine/
Безрезультатно.
Что это может быть?
rainproof
Сорри!
Предыдущее сообщение - можно удалить.
Проблема была связана с POU , в котором начал писать код для Modbus Master.
Много раз перечитал мануал, разобрался, методом проб и ошибок - все исправил.
Странно, что компилятор выдавал не ошибки в коде, а именно исключение об отсутствии файла лицензии.
jrave
Попался контроллер TM241C24R, могу ли я получать состояния его входов с помощью modbus? Нужно что-то запраграммировать или это возможно "из коробки"? Прошу прощения за подобный вопрос, но впервые столкнулся с контроллерами, третий день копаюсь в мануалах и видео, но вижу решение других задач. Если вопрос сложный - готов обсудить платную консультацию/помощь.
Se_Sib
Цитата(jrave @ 21.6.2019, 13:15) *
Попался контроллер TM241C24R, могу ли я получать состояния его входов с помощью modbus? Нужно что-то запраграммировать или это возможно "из коробки"? Прошу прощения за подобный вопрос, но впервые столкнулся с контроллерами, третий день копаюсь в мануалах и видео, но вижу решение других задач. Если вопрос сложный - готов обсудить платную консультацию/помощь.

Можно обращаться к памяти ввода/вывода напрямую
https://www.schneider-electric.com/en/faqs/FA308725/

Но как минимум коммуникационные порты нужно сконфигурировать.
rainproof
Тоже вопрос по Modbus, но только Modbus TCP Slave.(т.е. контроллер выступает в роли Slave)
Добавил в контроллере М241 к порту Ethernet_1 - ModbusTCP Slave Device, попробовал ModbusPoll записать некоторое значение в регистр write holding registers - запись осуществляется. А вот функция read holding register - не читает из контролера. только нули! (это переменные IW)
Пытался прочитать переменные input registers (QW) - ModbusPoll выдает все время - illegal function.
Что не так я делаю? Почему запись в контроллер осуществляется, а чтение из него - ни в какую?
Se_Sib
Цитата(rainproof @ 22.6.2019, 3:50) *
Тоже вопрос по Modbus, но только Modbus TCP Slave.(т.е. контроллер выступает в роли Slave)
Добавил в контроллере М241 к порту Ethernet_1 - ModbusTCP Slave Device, попробовал ModbusPoll записать некоторое значение в регистр write holding registers - запись осуществляется. А вот функция read holding register - не читает из контролера. только нули! (это переменные IW)
Пытался прочитать переменные input registers (QW) - ModbusPoll выдает все время - illegal function.
Что не так я делаю? Почему запись в контроллер осуществляется, а чтение из него - ни в какую?

Достаточно чтобы в настройках Ethernet порта стояла галка Modbus server active, опцию Modbus TCP slave device не обязательно на порт Ethernet добавлять, это выделенный канал с своей картой ввода/вывода до 120 регистров и заданием IP мастера, соединение с которым будет приоритетным.
Просто объявляете переменные с прямыми адресами, типа iVar1 AT %MW10 : INT; - целочисленная переменная, которая лежит в 10 регистре(слове). По этому же адресу(10) её читаем/пишем функциями Modbus работающими с регистрами хранения(Holding registers). Посмотрите описание AT объявления в Онлайн справке и в моей папке, ссылку на которую я выкладывал в начале темы, папка "инструкции". Обязательно обратите внимание на перекрытие адресов %MX(x.y)- номер байта и номер бита в памяти, %MB(x)-номер байта, %MW(x)-номер слова, %MD(x)-номер двойного слова. Например %MX20.0(адрес 0-го бита 10-го регистра), %MB20(первый байт 10-го регистра), %MW10(10 регистр), %MD5(32 битная переменная занимающая 10 и 11 регистр в памяти) будут перекрываться.

Что касается карты Modbus TPC Slave Device, обратите внимание, что %QW это область памяти Input Registers.
Нажмите для просмотра прикрепленного файла
rainproof
Se_Sib большое спасибо!
Еще возник вопрос по определению онлайн статуса устройств.
Есть ПЧ на порту CAN (контроллер М241),
и несколько слэйв устройств на serial line 2. Протокол Modbus RTU.
Serial_Line_2 --> Modbus_IOScanner --> Generic_Modbus_Slave.
Как вычитать ошибку коммуникации для каждого устройства?
Se_Sib
Цитата(rainproof @ 27.6.2019, 15:04) *
Se_Sib большое спасибо!
Еще возник вопрос по определению онлайн статуса устройств.
Есть ПЧ на порту CAN (контроллер М241),
и несколько слэйв устройств на serial line 2. Протокол Modbus RTU.
Serial_Line_2 --> Modbus_IOScanner --> Generic_Modbus_Slave.
Как вычитать ошибку коммуникации для каждого устройства?

Для CANopen библиотека CIA405, ФБ GET_STATE. Описание есть в справке или можете скачать на сайте
Для IOscanner библиотека SE_ModbusIOscanner, блок ModbusSerialSlave, в качестве экземпляра блока указываете структуру устройства, по имени как в IOscanner.
Нажмите для просмотра прикрепленного файла
Для Modbus Manager у вас каждый блок Read/Write имеет выходы состояния.
Se_Sib
На офф.сайте доступно для скачивания ПО EcoStruxure Machine Expert.
Machine Expert Installer Machine Expert Installer
Лицензии будут доступны с августа, от SoMachine 4.3 лицензия не подходит.

Вместе с Machine Expert c августа будут доступны:
-новая серия контроллеров Modicon M262 + новые модуля
-сетевая станция для модулей TM3(поддерживает Modbus TCP и EthernetIP)
-сетевая станция для модулей TM5(EthernetIP)
-сетевая станция для пускателей двигателей Tesys Island
Информацию так же можно найти на офф.сайте.

Из наиболее интересного это новая сетевая станция TM3BCEIP под модуля TM3. Поддерживает подключение до 14 модулей TM3.
Совместимость с контроллерами M221/241/251/262.
С новым Modicon M262 можно подключать по кольцевой топологии(поддержка RSTP).
Нажмите для просмотра прикрепленного файла
vovksextra
Цитата(Se_Sib @ 16.7.2019, 6:23) *
На офф.сайте доступно для скачивания ПО EcoStruxure Machine Expert.
Machine Expert Installer Machine Expert Installer
Лицензии будут доступны с августа, от SoMachine 4.3 лицензия не подходит.


Вчера установил. Лицензия триал на 42 дня. Проект для SoMachine сконвертировался и откомпилировался без проблем. Внешних изменений почти не увидел, разве что с визуализацией "наколхозили" при выборе компонентов. Из очень больших удобств - так это добавили refactoring. Очень удобная вещь. Переходить на новое ПО пока смысла не вижу. Посижу пока что на старом. Брал ЗДЕСЬ


Кстати при работе с m241 обнаружил несколько глюков, один из них при установленном модуле TM3XTRA1 и отсоединенном кабеле ethernet моргает лампочка ошибки портов ввода вывода, благо установили свитч (нужен был) лампочка потухла. Еще есть ньюансы по модулю tm3di16g. При заявленной скорости реакции на изменении состояния портов в 4ms не удалось , измерить нужную скорость механизма. Например, возьмем 10ms на время переключения состояния порта. Создаю задачу в с временем 1ms, использую обычный счетчик CTU. Казалось бы скорости хватит на обработку 6000 об мин. Пропуски начинаются уже при 500 оборотов в минуту. Пришлось датчик подключать непосредственно к самому порту PLC. Косяков еще много, но в целом работой доволен.Ни одного сбоя и зависания.
Se_Sib
Цитата(vovksextra @ 16.7.2019, 16:22) *
Кстати при работе с m241 обнаружил несколько глюков, один из них при установленном модуле TM3XTRA1 и отсоединенном кабеле ethernet моргает лампочка ошибки портов ввода вывода, благо установили свитч (нужен был) лампочка потухла. Еще есть ньюансы по модулю tm3di16g. При заявленной скорости реакции на изменении состояния портов в 4ms не удалось , измерить нужную скорость механизма. Например, возьмем 10ms на время переключения состояния порта. Создаю задачу в с временем 1ms, использую обычный счетчик CTU. Казалось бы скорости хватит на обработку 6000 об мин. Пропуски начинаются уже при 500 оборотов в минуту. Пришлось датчик подключать непосредственно к самому порту PLC. Косяков еще много, но в целом работой доволен.Ни одного сбоя и зависания.

Это не глюк и без TM3XTRA1 будет моргать светодиод I/O, если нет физического подключения Ethernet. Раньше как-то настраивал Ethernet порт так, чтоб I/O не моргал, но уже и не вспомню как.
В любом случае если Ethernet порт настроен на работу и соединение отсутствует, I/O моргает. Об этом есть в руководстве по аппаратной части - Indicates device errors on the embedded I/Os, serial line 1 or 2, SD card, cartridge, TM4 bus, TM3 bus, or Ethernet port.
По поводу счета через модуль, тут что-то не то, завтра проверю.
Изменений и обновлений хватает, например как раз добавили функцию ловить короткие сигналы на модулях с дискретными каналами.
Нажмите для просмотра прикрепленного файла
vovksextra
Когда модуль стоит за tm3rec1, этих параметров нет. Все нужные фильтры дребезгов делал программно.Важное замечание.На станке имеется много датчиков и для того , что бы не тянуть много кабелей принято было решение установить промежуточный шкаф с tm3rec1+tm3di16.+ еще пару модулей.Так вот не удалось мне получить правильное число импульсов. Может проблема со скоростью обмена в модулях расширения шины?В даташитах по этим модулям ноль информации. После того как датчик скорости перенес в основной шкаф столкнулся со второй проблемой.Станок работает в диапазоне оборотов двигателя от 20 оборотов в минуту до 2200. Настроил один счетчик как счетчик, второй как счетчик частоты.Необходимо знать количество произведеной продукции и скорость производства.С первым проблем нет, со вторым проблема, величина целочисленная, погрешность 1 гц , при оборотах меньше 60 показывается 0.Пришлость второй счетчик настроить как измеритель периода, а дальше математика. Теперь по поводу ethernet кабеля. Авария горит только при подсоединенном модуле.Модуль отключаешь, вынимаешь кабель - ошибки нет.
vovksextra
Был не внимателен по поводу Изменений и обновлений хватает, например как раз добавили функцию ловить короткие сигналы на модулях с дискретными каналами. Сразу же ознакомился с новшествами. Этому изменению не придал значение, так как использую в проекте еще и TM3DM24, а по нему ничего нет)

Да и не ясна еще политика лиценцирования. Ради пару моментов рисковать и переходить на новое ПО для программирования М241 смысла не вижу ИМХО


В одном проекте два щита и две реакции на выдергивание Ethernet кабеля. ВОТ и ВОТ
Se_Sib
В основе шины TM3 - RS485 работает на частоте 2Мгц, модуля приемник и передатчик просто повторители, мозгов никаких нет. Если скажем на ПЛК пристегнуть не 7, а например 8-9 модулей, будет работать, а в SoMachine будет сконфигурировано с модулем передатчика и приемника. Это я для примера, делать так не нужно.

Я не призываю переходить на Machine Expert.
Это будет актуально для тех, кто собирается работать с сетевыми станциями для модулей TM3 и c новыми Modicon M262. Бывало, что не хватает возможности расширения ввода/вывода контроллеров(только 14 модулей), особенно если используется много каналов pt100/1000, а модулей более чем с 4 каналами нет.
Теперь можно ставить станции с модулями и иметь значительно кол-во каналов в конфигурации. Допустим у того же M241 область памяти ввода/вывода = 2048/2048 регистров, каплеров до 32 по Modbus TCP можно подключить или до 16 по EthernetIP. Или если распределенная система управления нужна.
По поводу счета, доступны новые модуля высокоскоростного счета TM3XHSC202, TM3XFHSC202, но пока совместимы только с M262.

По лицензированию есть пояснения в каталоге Machine Expert, может работать в бесплатном режиме после TRIAL периода, но с ограниченным функционалом.
Нажмите для просмотра прикрепленного файла
rainproof
Вопрос по работе устройства Generic_Modbus_Slave

Сделал сначала одно устройство (контролер М241 в качестве Modbus Master)
ModbusIOScanner --> Generic_Modbus_Slave
Создал channels, создал переменные в программе, привязал их к channels.
Все работает быстро и прекрасно.
Создал 8 устройств (так на реальной установке).
Начались тормоза. Если все устройства (идентичны друг другу) онлайн - задержка на исполнение команды - 2-3 сек.
Если одно из 8 устройств онлайн - задержка 7-8 сек.



Как правильно проставить все тайминги в настройках ModbusIOScanner, Generic_Modbus_Slave?

В channels есть возможность генерирования единичного запроса по событию (триггеру).
Как выстроить средствами SoMachine цикл таких единичных запросов, чтобы устройство находящееся офлайн - исключалось из общего цикла? есть примеры? Вобщем - что-то про гибкие настройки Modbus Master, чтобы минимизировать время опроса. А то с настройками по умолчанию - довольно все как-то медленно. Просто очень нужно.
SolarFire
Здравствуйте! Подскажите пожалуйста по функции sysUART_putbuff для M172

если слать в HEX, то на выходе либо 00 либо другой мусор.
Код
return_a := sysUART_putbuff(0,16#2f,1);

Если слать в ASCII, то все нормально
Код
return_a := sysUART_putbuff(0,'/',1);

вот ннастройки порта

Se_Sib
Цитата(SolarFire @ 22.7.2019, 0:42) *
Здравствуйте! Подскажите пожалуйста по функции sysUART_putbuff для M172

если слать в HEX, то на выходе либо 00 либо другой мусор.
Код
return_a := sysUART_putbuff(0,16#2f,1);

Если слать в ASCII, то все нормально
Код
return_a := sysUART_putbuff(0,'/',1);

вот ннастройки порта


Это тема не по контроллерам M17x. Есть тема Modicon M171, можете написать туда.
Se_Sib
Цитата(rainproof @ 21.7.2019, 22:45) *
Вопрос по работе устройства Generic_Modbus_Slave

Сделал сначала одно устройство (контролер М241 в качестве Modbus Master)
ModbusIOScanner --> Generic_Modbus_Slave
Создал channels, создал переменные в программе, привязал их к channels.
Все работает быстро и прекрасно.
Создал 8 устройств (так на реальной установке).
Начались тормоза. Если все устройства (идентичны друг другу) онлайн - задержка на исполнение команды - 2-3 сек.
Если одно из 8 устройств онлайн - задержка 7-8 сек.



Как правильно проставить все тайминги в настройках ModbusIOScanner, Generic_Modbus_Slave?

В channels есть возможность генерирования единичного запроса по событию (триггеру).
Как выстроить средствами SoMachine цикл таких единичных запросов, чтобы устройство находящееся офлайн - исключалось из общего цикла? есть примеры? Вобщем - что-то про гибкие настройки Modbus Master, чтобы минимизировать время опроса. А то с настройками по умолчанию - довольно все как-то медленно. Просто очень нужно.

Если у вас 2сек. на цикл чтения/записи всех устройств, то это по 250мс на обмен с одним устройством, если 3сек. то 375мс на устройство.
По умолчанию в настройках generic_modbus_slave у вас установлено время ожидания ответа от устройства 1000мс, вы можете скорректировать эту цифру. Например если у вас гарантированно хватает 250мс на обмен с устройством, то можете попробовать поставить 300мс время ожидания для каждого устройства, при проблемах связи с 1-м устройством у вас будет задержка цикла опроса всех на +300мс, если 7 не в сети то +2100мс для оставшегося в сети.
Довольно медленные у вас устройства или каналов много, если каналов много то можно поиграться с параметром - задержка между фреймами, по умолчанию стоит 10мс.
Это что касается работы в автоматическом режиме опроса. Для каналов опроса можно выбрать режима вызова по триггеру, установка триггера через ФБ ModbusSerialSlave(имя экземпляра блока=имени устройства на шине).
Наиболее гибко вы можете организовать обмен если напишите его в ручную с помощью блоков из библиотеки PLCCommunication(READ_VAR,WRITE_VAR....)

В новом ПО Machine Expert улучшили настройки IOscanner, теперь можно отключить режим автоматического переподключения(как в оригинальном Codesys) к устройствам, если они не отвечают. Команда на попытку подключения из программы через тот же ФБ ModbusSerialSlave.
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
rainproof
Цитата(Se_Sib @ 22.7.2019, 8:43) *
Для каналов опроса можно выбрать режима вызова по триггеру, установка триггера через ФБ ModbusSerialSlave(имя экземпляра блока=имени устройства на шине).

Большое спасибо за ответ.
Но вот про "режим вызова по триггеру" хотелось бы поподробнее.
Я понял, что таким образом можно вызвать процедуру единичного запроса.
Но как именно сформировать алгоритм общего цикла?
Т.е. - взводим переменную пуска триггера каналов устройства 1, потом - интервал, потом взводим переменную пуска триггера опросов каналов устройства 2, и т.д.
В случае выпадения какого-то устроства в офлайн - исключаем это устройство из общего цикла. Как-то так?
И величину интервала между взведением триггеров - задать в программе.
rainproof
Цитата(Se_Sib @ 22.7.2019, 8:43) *
Это - то же самое, что использование функц.блока?
G_1 - это имя слэйв устройства в программе


Gribovms
Добрый день!
Ценники на лицензии пока не известны?
rainproof
Se_Sib,
Организовал в программе цикл опроса с помощью блоков READ_VAR, WRITE_VAR.
Да, действительно, все стало опрашиваться намного быстрее.
Но есть вопрос. В каждом из этих блоков есть входная переменная abort.
Какое у нее функциональное предназначение? Когда я перевожу ее в true на одном из блоков - у меня останавливается весь организованный мною цикл опроса.
Она предназначена для исключения одного блока из общего цикла опроса?
Как тогда ею правильно пользоваться, чтобы организовать адаптивный алгоритм опроса.
Например, если устройство перешло офлайн, опрашивать его, например, 1 раз за 5 циклов опроса.
Или как, используя эту переменную блока (abort) - писать переменные с помощью блока WRITE_VAR только когда в этом есть необходимость, т.е. в остальное время - чтобы эти блоки были неактивны в общем цикле.
И каково практическое применение выходной переменной этих блоков aborted?

Привожу свой код цикла опроса (как я его понял из мануала)

Код
ADDM_1(
    AddrTable:= ADDR_SL,
    Execute:= NOT start_4,
    Addr:= '2.1',
    Done=> ADDM_DONE,
    Error=> ADDM_ERR,
    CommError=> ADDM_COMM_ERR_1);
    
READ_VAR_1(
    Execute:= ADDM_DONE,
    Abort:= Abort_read_var_1,
    Addr:= ADDR_SL,
    Timeout:= comm_timeout_g,
    Done=> Done_Read_Var_1,
    Busy=> start_1,
    Aborted=> Aborted_read_var_1,
    Error=> Err_read_var_1,
    CommError=> Comm_err_read_var_1,
    OperError=> OperErr_read_var_1,
    ObjType:= ObjectType.MW,
    FirstObj:= 0,
    Quantity:= 3,
    Buffer:= (ADR(ReceiveBufferMW_G1)));
    
    air_temp_setp_r_1 := ReceiveBufferMW_G1[0];
    g_last_fault_r_1 := ReceiveBufferMW_G1[2];

    
READ_VAR_2
(
    Execute:= NOT start_1,
    Abort:= Abort_read_var_2,
    Addr:= ADDR_SL,
    Timeout:= comm_timeout_g,
    Done=> Done_Read_Var_2,
    Busy=> start_2,
    Aborted=> Aborted_read_var_2,
    Error=> Err_read_var_2,
    CommError=> Comm_err_read_var_2,
    OperError=> OperErr_read_var_2,
    ObjType:= ObjectType.IW,
    FirstObj:= 1,
    Quantity:= 5,
    Buffer:= (ADR(ReceiveBufferIW_G1)));

    air_temp_1 := ReceiveBufferIW_G1[0];
    g_status_1 := ReceiveBufferIW_G1[2];
    g_val_pwr_1 := ReceiveBufferIW_G1[3];
    g_val_time_1 := ReceiveBufferIW_G1[4];    

    SendBufferQ_G1[0] := com_g_start_1;
    
WRITE_VAR_1(
    Execute:= NOT start_2,
    Abort:= Abort_write_var_1,
    Addr:= ADDR_SL,
    Timeout:= comm_timeout_g,
    Done=> Done_write_var_1,
    Busy=> start_3_1,
    Aborted=> Aborted_write_var_1,
    Error=> Err_write_var_1,
    CommError=> Comm_err_var_1,
    OperError=> OperErr_write_var_1,
    ObjType:= ObjectType.Q,
    FirstObj:= 16,
    Quantity:= 1,
    Buffer:= ADR(SendBufferQ_G1));
    
    SendBufferQ1_G1[0] := com_g_stop_1;
    
WRITE_VAR_1_1(
    Execute:= NOT start_3_1,
    Abort:= Abort_write_var_1_1,
    Addr:= ADDR_SL,
    Timeout:= comm_timeout_g,
    Done=> Done_write_var_1_1,
    Busy=> start_3,
    Aborted=> Aborted_write_var_1_1,
    Error=> Err_write_var_1_1,
    CommError=> Comm_err_var_1_1,
    OperError=> OperErr_write_var_1_1,
    ObjType:= ObjectType.Q,
    FirstObj:= 25,
    Quantity:= 1,
    Buffer:= ADR(SendBufferQ1_G1));
    
    SendBufferMW_G1[0] := air_temp_setp_w_1;
    SendBufferMW_G1[2] := g_last_fault_w_1;
    
WRITE_VAR_2(
    Execute:= NOT start_3,
    Abort:= Abort_write_var_2,
    Addr:= ADDR_SL,
    Timeout:= comm_timeout_g,
    Done=> Done_write_var_2,
    Busy=> start_4,
    Aborted=> Aborted_write_var_2,
    Error=> Err_write_var_2,
    CommError=> Comm_err_var_2,
    OperError=> OperErr_write_var_2,
    ObjType:= ObjectType.MW,
    FirstObj:= 0,
    Quantity:= 3,
    Buffer:= ADR(SendBufferMW_G1));    

    online_G_1 := (ADDM_COMM_ERR_1 = 0) AND (Comm_err_read_var_1 = 0) AND
                    (Comm_err_read_var_2 = 0) AND (Comm_err_var_1 = 0) AND (Comm_err_var_2 = 0);


Еще есть нюанс один.
Пытался записать с помощью блока WRITE_VAR - два coils - 16, 17. 16 - в устройство пишется, 17 - нет. Т.е. пишется только первый койл. Попробовал несоседние койлы писать - та же история. Создал отдельный блок WRITE_VAR для второго (17) койла - тоже не пишется. Несоседний койл(25), спомощью отдельно созданного для него блока WRITE_VAR - записался. Или я что-то неправильно делаю, или что-то не то с программой. Если я делаю неправильно, то как правильно организовывать цикл опроса с использованием в одном цикле - нескольких блоков? В справке и мануалах - приведены примеры только для одного блока в цикле, один блок ADDM, один блок например READ_VAR.

Из мануала ясно, что переменная Abort - сбрасывает выходную переменную Busy,



что делает возможным старт следующего блока в общем цикле. Но когда я взвожу эту переменную на одном из блоков - у меня останавливается весь цикл опроса (см мой код выше).

Se_Sib
Цитата(Gribovms @ 25.7.2019, 11:31) *
Добрый день!
Ценники на лицензии пока не известны?

Около 12т с НДС за одиночную версии Standard, 24т за групповую на 10 машин.
Одиночная версии Professional 22т.
All_Ex81
Подскажите как залить программу в м251 через SD-карту,
Somachine 4.3. Все делаю по инструкции,
но при создании Macros-Download App создаются только два файла: Application.app и Application.crc, файл Application.map не создается !
Se_Sib
Цитата(All_Ex81 @ 12.8.2019, 13:48) *
Подскажите как залить программу в м251 через SD-карту,
Somachine 4.3. Все делаю по инструкции,
но при создании Macros-Download App создаются только два файла: Application.app и Application.crc, файл Application.map не создается !

Попадалась такая проблема пару раз в 4.3, помогала просто перезагрузка SoMachine. Заодно почистите(clean all) и пересобирите проект.
All_Ex81
Цитата(Se_Sib @ 12.8.2019, 10:59) *
Попадалась такая проблема пару раз в 4.3, помогала просто перезагрузка SoMachine. Заодно почистите(clean all) и пересобирите проект.


помогла перегрузка ПК, но вылезла еще одна проблема-
ПЛК с флэшки программу загружать не хочет (так же как и новую прошивку),
мигнет два раза кратковременно лампочкой флэшки - после этого лампа начинает гореть постоянно, проект не загружается.
Флэшкарта -micro SD (через переходник на SD), объем 4 Гб, Fat32, class10
Se_Sib
Цитата(All_Ex81 @ 13.8.2019, 10:31) *
помогла перегрузка ПК, но вылезла еще одна проблема-
ПЛК с флэшки программу загружать не хочет (так же как и новую прошивку),
мигнет два раза кратковременно лампочкой флэшки - после этого лампа начинает гореть постоянно, проект не загружается.
Флэшкарта -micro SD (через переходник на SD), объем 4 Гб, Fat32, class10

И такое бывает, некоторые карты не читает, попробуйте другую.
All_Ex81
Подскажите где можно посмотреть пример работы м241 с Profibus ?
Se_Sib
Цитата(All_Ex81 @ 22.8.2019, 10:20) *
Подскажите где можно посмотреть пример работы м241 с Profibus ?

Примера нет, есть руководство по программированию:
Modicon TM4 - Expansion Modules - Programming Guide
GSD файл можно найти в директории с установленным Machine Expert(SoMachine)
Drive:\Program Files\Schneider Electric\EcoStruxure Machine Expert Software\V1.1\LogicBuilder\GSD\SE100E83.GSD
или на сайте se.com
All_Ex81
Цитата(Se_Sib @ 22.8.2019, 10:17) *
Примера нет, есть руководство по программированию:
Modicon TM4 - Expansion Modules - Programming Guide
GSD файл можно найти в директории с установленным Machine Expert(SoMachine)
Drive:\Program Files\Schneider Electric\EcoStruxure Machine Expert Software\V1.1\LogicBuilder\GSD\SE100E83.GSD
или на сайте se.com


эту инструкцию я видел, не понятен момент про Task, что в этой программе этого task должно указываться?
Se_Sib
Цитата(All_Ex81 @ 22.8.2019, 14:36) *
эту инструкцию я видел, не понятен момент про Task, что в этой программе этого task должно указываться?

В задачу tProfibus никакие POU добавлять не нужно, это цикл обновления данных на шине.
All_Ex81
Цитата(Se_Sib @ 22.8.2019, 16:10) *
В задачу tProfibus никакие POU добавлять не нужно, это цикл обновления данных на шине.


Подскажите,
Прекомпилятор выдает сообщение: "No POU defined for task "tProfibus", так и должно быть?
Se_Sib
Цитата(All_Ex81 @ 23.8.2019, 13:57) *
Подскажите,
Прекомпилятор выдает сообщение: "No POU defined for task "tProfibus", так и должно быть?

Это предупреждение, не ошибка.
All_Ex81
Подскажите, М241 поддерживает MQTT ?
Aard
Цитата(All_Ex81 @ 12.9.2019, 10:29) *
Подскажите, М241 поддерживает MQTT ?

Да, в последней версии ПО есть библиотека MQTT
dsai
Добрый день, уважаемые коллеги.
Со Шнайдеровскими контроллерами общаюсь недавно. Возникла следующая задача. Есть M241 и некий GSM модем (некий - потому что каждый раз будут разные модемы). Необходимо отправлять/принимать СМС и принимать входящие вызовы (просто смотреть с какого номера позвонили и в ответ на этот номер смску кидать).

Внятных мануалов по тому, как общаться с модемом не нашел. Как я понимаю - общение ПЛК с модемом осуществляется АТ командами, и у разных модемов разные наборы данных команд. Допустим набор АТ команд для конкретного модема известен. А вот каким способом осуществить обмен этими командами не знаю. Единственное что понял, что нужно добавить ASCII Manager в дереве объектов.

Прошу подсказать, как это реально сделать.

(P.S. для шнайдеровского модема есть библиотека, но нет гарантии что она заработает с модемом стороннего производителя)
dsai
Разобрался и сделал передачу смс и обработку входящих смс и звонков. Если кому-то интересно, спрашивайте.
Knizhenok
Подскажите по видимости из вне регистров modbus для 241, правильно ли понимаю...

Изучаю 241 Programming Guide, и там говорят что надо создать Relocation Table, и в нее перенести
переменные которые хотим видеть из вне, и их можно будет прочитать по 485 или TCP.
Это правда????

Спрашиваю т.к. в основном имел дело с 172 где несколько иной подход.
ogorsv
Добрый день!

Существует два способа
Цитата
видеть извне
переменные М241:

1. Использовать АТ-адресацию
2. Использовать relocation table

Отвечая на ваш вопрос: да, это правда

PS Подход для Status variables в SoMachine HVAC (EcoStruxure) очень близок к relocation table в SoMachine: есть выделенные зоны Modbus-адресов, где вы размещаете переменные для видимости извне
All_Ex81
Цитата(ogorsv @ 18.12.2019, 19:36) *
1. Использовать АТ-адресацию
2. Использовать relocation table


3. Использовать прямую адресацию
Se_Sib
Все же использовать переменные с объявлением постоянных адресов через AT, удобней.
Есть программа для экспорта этих переменных в Vijeo Designer(ПО для панелей оператора Harmony(ранее Magelis)).
Объявляете переменные в Retain области и получаете сохраняемые(энергонезависимые) уставки/параметры.
Knizhenok
Спасибо огромное за ответы,
портов ввода вывода понятно как в АТ
а для глобальных которые в теле используются диапазон адресов переменных для AT такой же как и в relocation table?



Se_Sib
Цитата(Knizhenok @ 19.12.2019, 18:50) *
Спасибо огромное за ответы,
портов ввода вывода понятно как в АТ
а для глобальных которые в теле используются диапазон адресов переменных для AT такой же как и в relocation table?


%MW0...%MW59999
В руководстве по программированию есть информация по распределению памяти.

В начале темы я выкладывал ссылку на папку с материалами, посмотрите, может что-то интересного найдете:
https://schneider-electric.box.com/s/d33q3v...zr7qbntxmo14nay

Из руководства
Нажмите для просмотра прикрепленного файла
Пример
Нажмите для просмотра прикрепленного файла
Knizhenok
Спасибо огромное!!!

Подскажите пожалуйста какой библиотекой организовать опрос по RS-485 железяк со своими (не modbus) протоколами типа ТЭМ-104 или Белорусского счетчика СС-301.
Se_Sib
Цитата(Knizhenok @ 30.12.2019, 16:40) *
Спасибо огромное!!!

Подскажите пожалуйста какой библиотекой организовать опрос по RS-485 железяк со своими (не modbus) протоколами типа ТЭМ-104 или Белорусского счетчика СС-301.

Доступ к портам закрыт, поэтому использовать библиотеки SysCom, Caa SerialCom и подобные, не получится.
Если только добавить на порт ASCII Manager и попробовать написать, используя блок SEND_RECV_MSG.
Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.