Страница 1013 из 1047 ПерваяПервая ... 135139139631003101110121013101410151023 ... ПоследняяПоследняя
Показано с 10,121 по 10,130 из 10463

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #10121

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    У меня программа на 7 блоков ваша, а подключены 2 блока по факту, все работает ничего не удаляя.
    И у меня работает, но когда я удалю последние 4 UMD то все данные перекашивает - то есть в панели я вижу одни нули. Не могу понять как неподключенные пустые UMD влияют на данные которые идут в сенсорную панель

  2. #10122

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    И у меня работает, но когда я удалю последние 4 UMD то все данные перекашивает - то есть в панели я вижу одни нули. Не могу понять как неподключенные пустые UMD влияют на данные которые идут в сенсорную панель
    Кроме UMD надо ещё и структуры выровнять до 3 блоков, где было 1..7 поставить 1..3 в 5 местах1 Переделка компрессора.jpg
    У меня все работает и с 3, ничего не съехало.1 Работа.jpg
    Последний раз редактировалось kondor3000; 22.11.2023 в 13:52.

  3. #10123

    По умолчанию

    Я хотел бы комментария, того кто в теме.
    Сохраняемые и постоянные переменные в кодесисе 2.3 не одно и тоже, в отличие о текущей версии 3.5 (объявление persistent уже указывает на энергонезависимость) - это наталкивает на мысль, что директива компилятора работает с обеими областями памяти и не делает между ними разницы. Ведь в справке именно так и написано "энергонезависимая область". Более того в 3.5 есть подобная директива (прагма) {attribute 'no_instance_in_retain'} и там она кое как работает. (правда с ФБ та же беда)
    Отсюда - либо опечатка, неверный перевод в мануале CDS 2.3, либо она работает иначе, есть какие-нибудь настройки, либо все зависит от целевой платформы. Вот и интересно - кто то разобрался в этой теме.

  4. #10124

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    У меня все работает и с 3, ничего не съехало.
    По моему все изменил на 3 компрессора, не могли бы вы проверить чего я не учел в коде?
    При удалении хоть одного последнего UMD, данные в панели из структуры DATA_for_HMI становятся все по нулям:
    Код:
    			IF Active_PID = 1 THEN (*выводим на панель данные по активному пид*)
    				DATA_for_HMI.P_nominal := pid_struct_1.P_Nominal;
    				DATA_for_HMI.P_izmerennoe := P_izmer_pid;
    				DATA_for_HMI.Activ_pid := Active_PID;
    				DATA_for_HMI.Pid_Out := PID_1.OUT;
    				DATA_for_HMI.DBF_Actual := GET_DBF._DBF;
    				DATA_for_HMI.Count_Rele := CTUInst.CV * 4;
    				DATA_for_HMI.Poz_zadvigki := VALVE_REG1.VALVE_REG_NO_POS.VCURPOS;
    				DATA_for_HMI.Impuls_Dovodki :=  VALVE_REG1.VALVE_REG_NO_POS.PUSH_IMP;
    				DATA_for_HMI.bits2_0_7.0 :=  VALVE_REG1.VALVE_REG_NO_POS.LESS;
    				DATA_for_HMI.bits2_0_7.1 :=  VALVE_REG1.VALVE_REG_NO_POS.MORE;
    			ELSIF  Active_PID = 2 THEN
    				;
    			ELSIF  Active_PID = 3 THEN
    				;
    			END_IF;
    Вложения Вложения

  5. #10125

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    По моему все изменил на 3 компрессора, не могли бы вы проверить чего я не учел в коде?
    При удалении хоть одного последнего UMD, данные в панели из структуры DATA_for_HMI становятся все по нулям:
    На первый взляд всё правильно, разбираться во всём коде времени пока нет.
    Советую вам проследить все параметры в программе, возможно при удалении UMD, у вас смещаются прямые адреса типа AT%QD,
    которых вы бездумно напихали где не надо. Хотя вам писали адрес делать только один, указание на 1 регистр начала структуры.

  6. #10126

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    На первый взляд всё правильно, разбираться во всём коде времени пока нет.
    Советую вам проследить все параметры в программе, возможно при удалении UMD, у вас смещаются прямые адреса типа AT%QD,
    которых вы бездумно напихали где не надо. Хотя вам писали адрес делать только один, указание на 1 регистр начала структуры.
    Спасибо огромное, вы очень помогли! Так и есть смещаются адреса при удалении.

  7. #10127

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Советую вам проследить все параметры в программе, возможно при удалении UMD, у вас смещаются прямые адреса типа AT%QD,
    которых вы бездумно напихали где не надо. Хотя вам писали адрес делать только один, указание на 1 регистр начала структуры.
    Поторопился я радоваться ((
    Проверил все прописанные адреса на структурах, причем я их в таблицу записываю, все правильно сделано, без накладок.

    При добавлении UMD, адресА структур не смещаются. Так же и удаление UMD не влияет на адреса структур так как они идут по адресу QD7… а UMD привязывается к адресам QB6…

  8. #10128

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Поторопился я радоваться ((
    Проверил все прописанные адреса на структурах, причем я их в таблицу записываю, все правильно сделано, без накладок.

    При добавлении UMD, адресА структур не смещаются. Так же и удаление UMD не влияет на адреса структур так как они идут по адресу QD7… а UMD привязывается к адресам QB6…
    Чудес не бывает, если адреса не смещаются при удалении UMD, то они точно смещаются при уменьшении кол-ва 4BYTE. А их для 3 компрессоров надо меньше намного.
    Ну и проверку в эмуляции никто не отменял, с подстановкой чисел.
    И ещё после таких сильных изменений, обязательно очистить всё, компилировать всё.
    Последний раз редактировалось kondor3000; 23.11.2023 в 08:10.

  9. #10129

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Чудес не бывает, если адреса не смещаются при удалении UMD, то они точно смещаются при уменьшении кол-ва 4BYTE. А их для 3 компрессоров надо меньше намного.
    Ну и проверку в эмуляции никто не отменял, с подстановкой чисел.
    Каким же образом могут влиять добавление/удаление UMD из Мастера на Регистры Slave? Адреса у них разные Например QB6.8.0 добавляю в него "Real Input module" QB6.8.0.0 и при этом на скрине видно что перестает писать значение в регистры P_izmer_pid AT %QD7.42.0
    2023-11-23_09-30-41.jpg

    Мне всего то нужно добавить еще одну панель ИП320, но теперь ни удалить ни добавить UMD не могу, где же эта паразитная привязка?
    Удалил весь код основной программы, оставил только присвоение:
    Код:
    		p1^ := original_8AC[1].Read[8,1] * 16#10000 + original_8AC[1].Read[8,2];
    		P_izmer_pid := all_ai[1].ai[8].value; (*давление измеренное в центральной магистрали*)
    Данные в all_ai[1].ai[8].value есть но в P_izmer_pid они не присваиваются. Куда копать, подскажите пожалуйста?
    Последний раз редактировалось senkos; 23.11.2023 в 10:34.

  10. #10130

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Каким же образом могут влиять добавление/удаление UMD из Мастера на Регистры Slave? Адреса у них разные Например QB6.8.0 добавляю в него "Real Input module" QB6.8.0.0 и при этом на скрине видно что перестает писать значение в регистры P_izmer_pid AT %QD7.42.0
    Данные в all_ai[1].ai[8].value есть но в P_izmer_pid они не присваиваются. Куда копать, подскажите пожалуйста?
    Могу сказать только одно, у вас не соответствие размера стуруктур, размеру выделенного места в слейве. Вы что то меняете, добавляете, но не учитывая, что и выделенное место тоже надо менять и проверять соответствие. То есть всё делать пошагово, проверяя на залезает ли одна структура на другую.
    Кроме того, после сильных изменений, не делаете очистить всё, компилировать всё.
    Последний раз редактировалось kondor3000; 23.11.2023 в 11:02.

Страница 1013 из 1047 ПерваяПервая ... 135139139631003101110121013101410151023 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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