Страница 979 из 1177 ПерваяПервая ... 47987992996997797897998098198910291079 ... ПоследняяПоследняя
Показано с 9,781 по 9,790 из 11764

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

  1. #9781

    По умолчанию

    Проверил на 7 модулях МВ110-8АС, все работает с x : string(15);
    В структуру не ставил command : dword; //6.1.0, на моём ПЛК и без него работает. ПЛК у меня старый, возможно для новых [М 02] он нужен.

    По тому же принципу, сделал чтение 7 штук МВ110-8А. Так как там 2 String на чтение (по 48 байт), то структура получилась с двумя String(31) для выравнивания. Всё работает тоже.
    Последний раз редактировалось kondor3000; 02.08.2023 в 15:00.

  2. #9782

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Чтобы дойти, надо знать структуру распределения памяти в ПЛК Овен или иметь большой опыт работы с данными ПЛК.
    Код:
    original_8AC AT %QB6.1.0 : array[1..7] of struct_original_8AC;
    Кажется я уловил мысль, в новой версии у нас указан адрес UMD - %QB6.1.0 но при этом адрес конкретного стринга на разряд "ниже" то есть %QB6.1.0.0
    Получается происходит обращение не к конкретному стрингу, а к UMD по адресу %QB6.1.0
    Только каким чудным образом ПЛК начинает считывать следующий UMD? Или он будет читать до тех пор пока не закончатся все UMD?
    Предполагаю что %QB6.1.0 это начальный адрес с которого нужно произвести чтение в указанную переменную, количество байт как раз и указывает размер переменной и у нас она 7 по 79 байт = 553 байта.
    Смущает еще такой момент, что у UMD есть 1 байт AT % QB6.1.0: BYTE; (*Command (0xff - Start) - это как раз и есть тот элемент в структуре command : dword; //6.1.0
    Последний раз редактировалось senkos; 02.08.2023 в 15:54.

  3. #9783

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Код:
    original_8AC AT %QB6.1.0 : array[1..7] of struct_original_8AC;
    Кажется я уловил мысль, в новой версии у нас указан адрес UMD - %QB6.1.0 но при этом адрес конкретного стринга на разряд "ниже" то есть %QB6.1.0.0
    Получается происходит обращение не к конкретному стрингу, а к UMD по адресу %QB6.1.0
    Только каким чудным образом ПЛК начинает считывать следующий UMD? Или он будет читать до тех пор пока не закончатся все UMD?
    Предполагаю что %QB6.1.0 это начальный адрес с которого нужно произвести чтение в указанную переменную, количество байт как раз и указывает размер переменной и у нас она 7 по 79 байт = 553 байта.
    В структуру не ставил command : dword; //6.1.0, на моём ПЛК и без него работает. ПЛК у меня старый, возможно для новых [М 02] он нужен.

    Не надо гадать, надо делать и смотреть Онлайн, я уже всё проверил, если у вас будет смещение адресов, вы увидите во второй структуре original_8AC[2].
    Вот скрин, все SDR=0 (Статус=ОК), смотрю 2 модуль, смещение правильное 1 Чтение 8АС.jpg
    ПЛК работает циклически и опрашивает все UMD по кругу, так же как и выполняет программу.

    У меня адрес 6.1.0 ( у меня это 13.1.0) поставить структуре нельзя, при компиляции сразу ошибка.

    Вот что будет, если смещение не правильное, если добавить command : dword; или изменить String(15) данные из READ залезли наверх, на SDR 1 Смещение не правильноjpg.jpg
    Последний раз редактировалось kondor3000; 02.08.2023 в 16:39.

  4. #9784

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    to kondor3000, нету возможности посмотреть,
    проверить всего лишь нужно
    adr(%IB13.2.0.0) - adr(%IB13.1.0.0) => ?

    В "старых" плк у command другой префикc (QB vs IB) => другая область памяти
    Разница в адресах 80 байт ( c 0 по 79 ), а сколько в новых проверить не могу, нечем.
    adr(%IB13.2.0.0) - adr(%IB13.1.0.0) =>80 1 Разница в адресах.jpg
    Последний раз редактировалось kondor3000; 02.08.2023 в 19:49.

  5. #9785

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    k := last_address; //И адреса бы так и забил. Упорядоченность облечает жизнь
    case k of 1..7:
    Зачем адреса перепрограммировать? Проще написать k := last_address-15;
    Последний раз редактировалось kondor3000; 02.08.2023 в 21:56.

  6. #9786

    По умолчанию

    Здравствуйте! Правильно ли я понимаю, что за один такт ПЛК опросит все UMD и при этом Last address изменится такое же количество раз сколько у нас UMD?

  7. #9787

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну вот попробуйте ответить сами на это учитывая что цикл ПЛК может быть 1мс (а на "старых" плк, блин, еще и меньше!), а самая эльфийская транзакция для модбас-rtu не меньше 3..4мс.
    Если честно совсем не понимаю ваших ответов загадками. Polling time разве не задает время опроса?
    Будьте добры объясните пожалуйста?
    Этот вопрос связан с данным кодом:
    Код:
      k := last_address; //И адреса бы так и забил. Упорядоченность облечает жизнь
      case k of 1..7:
        for i := 1 to 8 do
          all_ai[k,i].status := original_8AC[k].SRD[i];
          all_ai[k,i].cyclic := original_8AC[k].Read[i,3];
          p := adr(all_ai[k,i].value);
          p^ := original_8AC[k].Read[i,1] * 16#10000 + original_8AC[k].Read[i,2];
        end_for
      end_case
    в частности с CASE, он должен быть внутри нашего цикла или же сам плк исполнит этот CASE от 1 до 7?
    Последний раз редактировалось senkos; 08.08.2023 в 21:21.

  8. #9788

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Какой ПЛК на столе?
    ПЛК110-24.30.Р-М (v2)

  9. #9789
    Пользователь
    Регистрация
    08.08.2023
    Адрес
    Новосибирск
    Сообщений
    7

    По умолчанию

    Здравствуйте! Подскажите пожалуйста как (и когда) можно менять свои права в форуме?
    (Я не могу не опубликовать темы и писать сообщение)

  10. #9790

    По умолчанию

    Здравствуйте. подскажите по такому вопросу. Имеется два контроллера ПЛК160 и ПЛК110 модификации M2. В течение года в каждом из них проявились неисправности схожего характера. Обе связаны с работой центрального SOM модуля. На первом, который SOM01C05 (ПЛК110) инициализация при включении терпит неудачу в 95% случаев. При детальном изучении смог выяснить, что причина в обвязке микросхемы памяти MX30LF1G0. Во втором модуле SOM01C04 (ПЛК160) подозрение также на сбой этой микросхемы. Там неисправность проявляется при попытке подключиться к программе CoDeSys, которая выдаёт сообщение что профиль-таргет подключения программы не соответствует целевой платформе физического ПЛК, к которому подключаюсь. Я попытался залить заводскую прошивку на контроллер, версия firmware_v1.1.0_bat. Все процедуры выполнял строго по мануалу: Инструкция по обновлению прошивки ПЛК1хх [М02].pdf. Попытка потерпела неудачу со следующим логом в командном окне:

    [TYPE] UBL and application image
    [UBL] ubl_AM1808_NAND_UNIVERSAL.bin
    [APP IMAGE] 160_v1.1.0.bin
    [TARGET] OMAPL138
    [DEVICE] NAND
    [NAND Block] 1

    Attempting to connect to device COM2...
    Press any key to end this program at any time.

    (AIS Parse): Read magic word 0x41504954.
    (AIS Parse): Waiting for BOOTME... (power on or reset target now)
    (AIS Parse): BOOTME received!
    (AIS Parse): Performing Start-Word Sync...
    (AIS Parse): Performing Ping Opcode Sync...
    (Serial Port): Read error! (Время ожидания операции истекло.)
    (AIS Parse): I/O Error in read!
    (AIS Parse): Boot aborted.
    Booting SFT failed. Trying again (you may need to reset the target)...
    (AIS Parse): Read magic word 0x41504954.
    (AIS Parse): Waiting for BOOTME... (power on or reset target now)
    (Serial Port): Read error! (Операция ввода/вывода была прервана из-за завершения
    потока команд или по запросу приложения.
    )
    Для второго случая вероятно имеет место повреждение данных инициализации ПЛК.

    Подскажите пожалуйста, каковы наши действия? Можем ли мы купить у вас данные модули для ремонта этих ПЛК?

Страница 979 из 1177 ПерваяПервая ... 47987992996997797897998098198910291079 ... ПоследняяПоследняя

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

Ваши права

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