Показано с 1 по 10 из 15

Тема: адрессация

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Програмка, которую я выставил, очень усечённая версия. В ней уже существуют другие подпрограмки. mem потому и объявлена глобальной, что действует и в другом блоке и включается только на период одного цикла. А вообще мне просто нужно единовременно измерить (режим калибровки) средний вес ленты весового дозатора за один оборот ленты и использовать его в последующих вычислениях.
    Как я теперь понимаю - меркерная память действует только в динамическом режиме, во время работы программы?
    А почему сам адрес-то не допустим? Компилятор не ругается вроде.

  2. #2

    По умолчанию

    Ну с памятью - я имел в виду у вас встречается в подпрограмме AT %* - почему не ругается компилятор не знаю.
    С маркерной особо не работал - не в курсе. А с ретэйнами работал.

    Если у Вас по какому то событию надо сохранять значения всех переменных - не издевайтесь так над собой и над программой.
    Создайте отдельную подпрограмму, которая по результатам переменной mem (простой выход одного из блоков - не глобальная переменная) будет присваивать отдельным переменным для хранения значений в Retain значение простых выходных переменных из других подпрограмм.
    Ну или даже не подпрограмму - а прям операторами типа move с блоками EN...

    Ну и последнее - данное присвоение стоит делать (вызывать подпрограмму записи переменных) в самом конце программы. Чтобы флаг mem или любые другие были взведены. При переходе в начало программы (на примере Вашей программы) mem сбрасывается.

  3. #3

    По умолчанию

    спасибо, буду пробовать.

  4. #4

    По умолчанию

    попробовал по разному, но в итоге как вы и говорили лучше всего ретайны объявлять и записывать с помощью Move в самой гл. программе. когда перенёс в Plc_prg -заработало -стали сохранятся. получается, что с ретайнами работать можно только в Plc_prg. а как же тогда понимать HELP?

    "если локальная переменная функционального блока объявлена Var Retain, то все его данные целиком помещаются в энергонезависимую область памяти, но обслуживаться как Var Retain будет только данная переменная." ???
    Или всё зависит от целевой платформы?
    И ещё. возникает следующий вопрос:
    "Есть ли возможность сохранять, полученные в результате измерений во время процесса ,так сказать online, калибровочные коэффициенты (сохранённые В ПЛК как retain) ещё и в самой программе на ПК, чтобы была возможность загрузить на другой контроллер в любое время, хоть через год и не париться с калибровками"
    Оборудование бывает неделями ремонтируется.
    "
    Cпасибо

  5. #5

    По умолчанию

    Цитата Сообщение от Safron Посмотреть сообщение
    "если локальная переменная функционального блока объявлена Var Retain, то все его данные целиком помещаются в энергонезависимую область памяти, но обслуживаться как Var Retain будет только данная переменная." ???
    Или всё зависит от целевой платформы?
    Я знаю, что если переменную блока объявить как Retain, то весь блок попадает в Retain. Но как и где - не пробовал - не скажу...
    Цитата Сообщение от Safron Посмотреть сообщение
    И ещё. возникает следующий вопрос:
    "Есть ли возможность сохранять, полученные в результате измерений во время процесса ,так сказать online, калибровочные коэффициенты (сохранённые В ПЛК как retain) ещё и в самой программе на ПК, чтобы была возможность загрузить на другой контроллер в любое время, хоть через год и не париться с калибровками"
    Оборудование бывает неделями ремонтируется.
    "
    Cпасибо
    Зависит от программы на ПК
    Можно с помощью библиотеки SysLibFile создать в ПЛК свой файл и че угодно в него записывать самим.

  6. #6

    По умолчанию

    спасибо. буду дальше пробовать. можете закрывать тему.

Ваши права

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