Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 38

Тема: Modbus Slave, 4х байтовая переменная, выравнивание, codesys 2.3

  1. #11
    Пользователь Аватар для nensist
    Регистрация
    22.01.2016
    Адрес
    Архангельск
    Сообщений
    85

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Формально ограничений нет, но больше 1000 dword вряд ли у Вас получиться запихнуть, так как есть ограничние на размер конфигурации. Подробнее: http://www.owen.ru/forum/showthread.php?t=25302
    Почитал я эту тему. У меня получается надо переменных по 2byte - 2850 шт, переменных DWORD(REAL) - 505 шт
    Хватит области конфигуратора или даже не пытаться набивать?
    Объясню от куда столько, это уставки для 100 программ выпечки. Данные будут приходить из СП300. Почему рецептами в панели не делаю? Потому что будет еще скада, где будут иногда изменять данные уставки.
    В плк на выполнении одновременно будет только одна программа

  2. #12
    Пользователь Аватар для nensist
    Регистрация
    22.01.2016
    Адрес
    Архангельск
    Сообщений
    85

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Главное слово там - заглавными буквами.
    В конфигурации выравнивание выполняется АВТОМАТИЧЕСКИ, самому ничего выравнивать не надо, только нужно учитывать это при определении номеров регистров в слейве.
    Дак что учитывать надо? если у меня идут сначала 2byte? последний 2byte будет с адресом 60. Я создаю Float и система дает ему адрес 61, далее я ручками меняю это на 62. Далее создавая Float система адрес дает 63 я исправляю на 64. Сответственно в панели СП300 для записи и чтения данных Float я ставлю адреса 60 и 62. Может я тут че не так делаю? Но все ведь работает хорошо по факту. Я немогу создать сначала допустим 10 шт Float. Приходится вставлять по одному, менять адрес, далее вставлять следующий.

  3. #13
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от nensist Посмотреть сообщение
    Почитал я эту тему. У меня получается надо переменных по 2byte - 2850 шт, переменных DWORD(REAL) - 505 шт
    Хватит области конфигуратора или даже не пытаться набивать?
    Объясню от куда столько, это уставки для 100 программ выпечки. Данные будут приходить из СП300. Почему рецептами в панели не делаю? Потому что будет еще скада, где будут иногда изменять данные уставки.
    В плк на выполнении одновременно будет только одна программа
    А зачем все 100 программ хранить в слейве?
    Все 100 программ можно хранить в файле на ПЛК.
    Для редактирования с панели или из скада достаточно в слейве иметь регистры только ОДНОГО рецепта и номер редактируемого рецепта.

    ЗЫ
    И на экране панели можно будет "пролистывать" все рецепты, редактировать нужный и давать команду ПЛК сохранить изменения в файле.
    Последний раз редактировалось petera; 02.02.2018 в 10:37.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #14

    По умолчанию

    Цитата Сообщение от nensist Посмотреть сообщение
    Какое ограничение будет для ПЛК110-30М (обновленный М02)?
    100 килобайт .

  5. #15
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от nensist Посмотреть сообщение
    последний 2byte будет с адресом 60. Я создаю Float и система дает ему адрес 61
    в слейве не указаны адреса. Идентификатор узла, который скорее всего Вы имеете ввиду, это не АДРЕС РЕГИСТРА СЛЕЙВА
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #16
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от nensist Посмотреть сообщение
    В конфигурации выравнивание выполняется АВТОМАТИЧЕСКИ, самому ничего выравнивать не надо, только нужно учитывать это при определении номеров регистров в слейве.
    Дак что учитывать надо? если у меня идут сначала 2byte? последний 2byte будет с адресом 60. Я создаю Float и система дает ему адрес 61, далее я ручками меняю это на 62. Далее создавая Float система адрес дает 63 я исправляю на 64. Сответственно в панели СП300 для записи и чтения данных Float я ставлю адреса 60 и 62. Может я тут че не так делаю? Но все ведь работает хорошо по факту. Я немогу создать сначала допустим 10 шт Float. Приходится вставлять по одному, менять адрес, далее вставлять следующий.
    И где Вы такое делаете: - "далее я ручками меняю это на 62"
    Ручками в слейве нельзя изменить номер регистра. Все номера назначаются АВТОМАТИЧЕСКИ в порядке их размещения.
    если идут сначала 2byte? последний 2byte будет с адресом 60, а затем добавить Float, то система назначит ему адрес не 63, а АВТОМАТИЧЕСКИ - 64!
    Это и есть механизм выравнивания.
    Вот именно это и нужно учитывать - в панели использовать для записи и чтения данных Float адрес 64, а не 63
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #17
    Пользователь Аватар для nensist
    Регистрация
    22.01.2016
    Адрес
    Архангельск
    Сообщений
    85

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    И где Вы такое делаете: - "далее я ручками меняю это на 62"
    Ручками в слейве нельзя изменить номер регистра. Все номера назначаются АВТОМАТИЧЕСКИ в порядке их размещения.
    если идут сначала 2byte? последний 2byte будет с адресом 60, а затем добавить Float, то система назначит ему адрес не 63, а АВТОМАТИЧЕСКИ - 64!
    Это и есть механизм выравнивания.
    Вот именно это и нужно учитывать - в панели использовать для записи и чтения данных Float адрес 64, а не 63
    Вот адрес узла я как раз и менял)))
    Тоесть по 2Byte которое с адресом(идентификатор узла) 60 (в панели его читаю и записываю как адрес 59), создаю FLOAT, система дает ему идентификатор 61. По какому адресу тогда обращяться к данному FLOAT из панели?

  8. #18
    Пользователь Аватар для nensist
    Регистрация
    22.01.2016
    Адрес
    Архангельск
    Сообщений
    85

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    А зачем все 100 программ хранить в слейве?
    Все 100 программ можно хранить в файле на ПЛК.
    Для редактирования с панели или из скада достаточно в слейве иметь регистры только ОДНОГО рецепта и номер редактируемого рецепта.

    ЗЫ
    И на экране панели можно будет "пролистывать" все рецепты, редактировать нужный и давать команду ПЛК сохранить изменения в файле.
    Тоже хороший вариант. Спасибо за подсказку. Только проблема в том что совсем нет опыта работы с файлами плк. Есть ли хорошая информация по данному вопросу? Примеры?

  9. #19
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от nensist Посмотреть сообщение
    Вот адрес узла я как раз и менял)))
    Тоесть по 2Byte которое с адресом(идентификатор узла) 60 (в панели его читаю и записываю как адрес 59), создаю FLOAT, система дает ему идентификатор 61. По какому адресу тогда обращяться к данному FLOAT из панели?
    В конфигурации ПЛК адреса регистров начинаются с НУЛЯ.
    По этому если создать 60 регистров 2Byte, то адрес последнего регистра - 59, а не 60
    И если добавить элемент FLOAT, то адрес у него будет 60, а не 61! Адрес 60 - четный, по этому выравнивания нет
    Пример
    Захват-2.png

    Захват-1.png
    Последний раз редактировалось petera; 02.02.2018 в 11:10.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #20
    Пользователь Аватар для nensist
    Регистрация
    22.01.2016
    Адрес
    Архангельск
    Сообщений
    85

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    В конфигурации ПЛК адреса регистров начинаются с НУЛЯ.
    По этому если создать 60 регистров 2Byte, то адрес последнего регистра - 59, а не 60
    И если добавить элемент FLOAT, то адрес у него будет 60, а не 61! Адрес 60 - четный, по этому выравнивания нет
    Пример
    Захват-2.png

    Захват-1.png
    Все правильно к последнему 2 byte с панели я и обращаюсь как к 59. 60 я имел ввиду идентификатор узла. Буду разбираться. По ходу меня не так научили в свое время. второй год так фигачу)))) Что скажете про мой большой объем переменных в конфигураторе, влезет туда все это или только через библиотеки обмен делать? И что можете посоветовать почитать по работе с файлами плк?

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Modbus (Master) не отображается в память Modbus (Slave)
    от ghoch в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 07.05.2018, 09:40
  2. Ответов: 2
    Последнее сообщение: 06.09.2016, 12:36
  3. Байтовая адресация
    от Спорягин Кирилл в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 13.08.2015, 17:45
  4. Переменная из Modbus (master) в Modbus (slave)
    от Zenr в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 25.10.2013, 12:38
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •