Показано с 1 по 4 из 4

Тема: в КДС не записываются по ctrl+F7 переменные в онлайне

  1. #1

    По умолчанию в КДС не записываются по ctrl+F7 переменные в онлайне

    Не записываются по ctrl+F7 переменные в онлайне

    Есть переменные спроецированные на память modbus.
    Типы разные int, bool, union.

    Проецирование на память модбас делается и в область input и в область output. Задано перекрытие областей. Это сделано для того, чтобы значение можно было и читать и писать внешним устройством. Как сделать по-другому незнаю. Если не задавать одну и ту же переменную в маппинге и во вход и в выход, она либо пишется но при чтении равна 0, либо имеет значение но запись по модбас не проходит.

    Так вот, для переменных типа int в онлайне КДС можно задать предустановленное значение и записать его по ctrl+f7, а для типов bool и union запись не работает. Для bool работает force.

    union используется для выкладывания в память модбас переменных типа real и dint. объявил юнион и представляю эти типы как массив [0..1] типа word. в модбас проецирую слова

    думаю это связано с тем что и биты и вариант типа в union являются вложенными т.е. и спроецированный бит входит в состав слова карты памяти модбас, и к элементу юниона я обращаюсь как к элементу my_real.value при том что в маппинге модбас пишу my_real.w[0] и my_real.w[1]

    при этом в программе запись в биты и my_real.value := 3.1415926 работает

    есть ли способ записывать в bool и union значения по ctrl+F7 (например в watch'е)?

  2. #2

    По умолчанию

    Доброе утро!
    Приложите пожалуйста Ваш проект (оставьте в нем только проблемное место), так будет легче разобраться в проблеме.

  3. #3

    По умолчанию

    приложил. в проекте 3 переменные. все есть в маппинге модбас. если по модбас в адрес 4x0001 (маппинг ячеек [0]) записать 1 то в другие две программно запись пройдет. а вот по ctrl+f7 запись не проходит.

    дополнительно вопрос - чтобы работал маппинг я делаю на мой взгляд бесполезные действия в коде типа
    var1:=var1;
    для того чтобы значение из inputs попало в outputs. без этих строк в outputs остаются нули даже при том, что в маппинге указана эта же переменная для outputs. без этого при чтении ячейки по модбас я увижу 0 даже после записи в нее по модбасу.
    можно ли обойтись без этого и видеть по модбас значения которые записал по модбас?
    Вложения Вложения

  4. #4

    По умолчанию

    это кстати отдельный вопрос: почему на функцию модбас 0х10 КДС пишет в Input registers если по описаниям и возможно стандарту эти регистры только для чтения?

    16 (0x10) — запись значений в несколько регистров хранения (Preset Multiple Registers)

Похожие темы

  1. ПР 114 проверить работу в ОНЛАЙНЕ как?
    от дрю в разделе Программируемые реле
    Ответов: 10
    Последнее сообщение: 08.04.2015, 20:29
  2. показания прибора не записываются в таблицу
    от Balans-soft в разделе OWEN Proces Manager
    Ответов: 4
    Последнее сообщение: 01.10.2013, 12:45
  3. Ответов: 4
    Последнее сообщение: 18.07.2011, 11:47
  4. Глобальные переменные
    от cia240 в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 02.04.2009, 10:04
  5. Что за переменные ImpVar?
    от MasterZ в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 15.01.2009, 12:26

Ваши права

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