Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 26 из 26

Тема: Почему бы Овену не сделать переменные 64 или 128 байт в модуле slave?

  1. #21

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Это был режим онлайн, а просто стандартным плейером винды не пробовали
    Windows Media по случаю завис и удалось увидеть картинку :-)
    PS: удобная программа CoDeSys, позволяет запускать одновременно несколько копий, экономит мое время. EasyBuilder так не может или не желает.
    Изображения Изображения
    Последний раз редактировалось Загнетов; 05.09.2012 в 23:42.

  2. #22

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    что то у Вас на каждом шаге трудности, может выложить видео, что у меня видео с примером работает
    спасибо, не надо.
    и у меня работает. лучше изучение основных принципов, чем сиюминутное "как именно сделать", хотя четкой границы нет и одно перетекает в другое.
    пока удалось наступить почти на все грабли, оттого что некачественно изучил документацию, вот и возникают "детские" вопросы типа "индексного регистра в панели или канала в slave".
    поэтому в выходные заново перечитаю и осмыслю документацию на кодесис и панель и большинство вопросов отпадут.

    1) для Валенок: я посмотрел, выравнивание не всегда происходит по квартам. Если объявить структуру STRUCT1 из 16 битных, то смещение очередного компонента равно размеру предыдущего, то есть выравнивания и следовательно "щелей" внутри такой структуры нет.

    2) если эта структура типа STRUCT1 является элементом другой структуры типа STRUCT3 (STA : STRUCT3), то в зависимости от размеров элементов, в STA могут появляться щели. Щели не инициализируются, поэтому до перезагрузки контроллера в них лежит оставшийся "мусор" (при перезаписи дампа структуры по указателю в область обмена "мусор" виден). Вреда для исполняемой программы от мусора нет, но при отладке менее удобно, мусор остается от тех же маркеров-заполнителей ( CLEAR_ARR) после изменения размера структуры.

    на экранах - область обмена modbus (скриншот панели), начиная с 0 адреса, увеличение адр. сверху вниз по столбцам
    Изображения Изображения

  3. #23

    По умолчанию

    ________программа
    Изображения Изображения

  4. #24
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,271

    По умолчанию

    Сформулирую по другому.
    1.Порядок не меняется - к счастью нет никаких оптимизаций.
    2.Элементы структуры выравниваются обычным (для КДС) порядком,т.е. есть разница :
    dword, word, byte, byte
    byte, byte, dword, word (Вот они щели. Причем две)
    dword, byte, word, byte (И тут. Но другие)
    3.Размер структуры всегда кратен 4.

  5. #25

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Сформулирую по другому.
    1.Порядок не меняется - к счастью нет никаких оптимизаций.
    2.Элементы структуры выравниваются обычным (для КДС) порядком,т.е. есть разница :
    dword, word, byte, byte
    byte, byte, dword, word (Вот они щели. Причем две)
    dword, byte, word, byte (И тут. Но другие)
    3.Размер структуры всегда кратен 4.
    да, во всем согласен
    а внутри структуры однотипные (фактически именованный масив) не выравниваются, щели внутри структуры только между разнотипными.

  6. #26

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Может быть все зависит, от наибольшего размера находящихся в структуре типов. На скрине у меня структура из трех вордов, соответственно смещение на 2 должно попасть на втрой элемент и это так, а в том примере где один ворд, а за ним реал, надо было смещать на четыре чтоб попасть куда нужно
    хорошо бы автоматизировать составление таблиц длин и смещений
    для последующей работы с панелью, можно анализировать при помощи заполнения маркерами или полиномами, а то при большом количестве переменных вручную ненадежно, да и изменение структуры может вести к переделке таблицы.

    И в продолжение вчерашней темы о производительности - плк:
    при копировании дампа структуры (более 300 байт) в память обмена ПЛК-100L, в цикл контроллера я добавил "на пробу" еще 100 таких перезаписываний. Справляется, обслуживает логику программы и еще два сегмента Modbus.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. плк63-пм01 потеря байт
    от Elka в разделе ПЛК63/73
    Ответов: 35
    Последнее сообщение: 06.11.2012, 15:26
  2. ПЛК(Slave) < СП270(Master) > ПЛК(Slave). Хождение по экранам при потере связи.
    от masterfloMaster в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 12.04.2011, 18:41
  3. чтение массива байт
    от Febricio в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 29.07.2010, 12:06
  4. Modbus slave переменные
    от Дмитрий77 в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 30.04.2010, 16:26

Ваши права

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