Хотя, конечно, можно и любую другую скаду брать!
Хотя, конечно, можно и любую другую скаду брать!
Добрый день, подскажите новичку пожалуйста.
Какой я адрес должен указать в EasyBuilder на кнопке старт (Вентилятора В1) ? Если в codesys у меня Start_Main_Fan_V1 AT %QX8 29.0.0: BOOL Пуск.png панель.png
Последний раз редактировалось atomo2; 24.01.2024 в 11:32.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Камрады, подскажите и мне!
Подозреваю, что нарвался на выравнивание адресов в структуре и туплю, так как в другом проекте всё было нормально, и никаких глюков с выравниванием не было.
Вот что у меня есть:
1. Структура с описанием полей панели. Там всякие WORD или структуры из WORD. FLOAT и DWORD нет ВООБЩЕ.
2. Конфигурация ПЛК, где вбита пачка элементов по "4 Bytes".
3. ИП320.
Что наблюдаю: Начиная с регистра 26 данные съезжают на 1 регистр вперёд.
При этом панель читает правильно: если вручную в конфигурации ПЛК задать "2" на регистре 27 - то панель этот статус читает верно, чёрт побери.
Как будто моя структура сдвигается в регистрах 26-27 на 1 слово.
В CodeSys 2.3 как-то можно структуру выровнять по 2 байта, а не по 4 байта?
Clip.gif Clip_2.gif Clip_3.gif Clip_4.gif
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net
А где у меня 32 бита? У меня везде всё по WORD - по 16 бит же.
И панель всё читает как 16-битные. Какая ей разница, как в ПЛК ЭТО вбито? В прошлом проекте такого не было, и начало регистров с нечётными данными читались на ура.
То, что я тут поменял - так это сделал вложенные структуры из 2х WORD на 4 WORD.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net
4 BYTE, это DWORD, а структуру вы пытаетесь поместить во 2 регистр предыдущего DWORD.