Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Прямое чтение портов СПК107[M01]

  1. #1

    По умолчанию Прямое чтение портов СПК107[M01]

    Доброго дня.
    Для анализа ошибок системы в лог файл собираю данные, одними из них являются данные по портам - их мгновенный снимок.
    Тоесть 2 порта на 32 входа и на 32 выхода - их состояние мгновенно при сбое копируются в переменные типа DWORD.
    В своей процедуре "алармов" я делаю это копирование:

    PortIn1:=%IW10;
    PortIn2:=%IW12;

    Интересно то, что это работает со входами!! а с ВЫходами нет!! компилятор пишет что нарушена процедура присвоения (или происходит переназначение...)

    PortOut1:=%QW0;
    PortOut2:=%QW2;

    Хотя по сути я просто беру область входов или выходов и кладу их в переменную а не наоборот!!
    Как можно сделать снимок/слепок сразу всех выходов ?

  2. #2

  3. #3

    По умолчанию

    А они уже привязаны - каждый бит - своя переменная и привязать всё слово на переменную типа WORD не даёт - ругается что переназначение происходит. Это же работает со входами, а почему на выхода не работает -вот это интересно, или по тому что это выхода их состояние читать нельзя ?? - это бред, выходной регистр тоже должен быть доступен для чтения.
    Изображения Изображения

  4. #4

    По умолчанию

    В столбец "соотнесение" (Или переменная) пропиши свои переменные. С ними можно делать что угодно. Это и удобнее, можешь переменные массива туда прописать и одной строкой цикла всё обрабатывать.

  5. #5

    По умолчанию

    хе, Вы думаете это я не делал, писал же что не даёт - вот картинка... или я не так делаю... Вы сами попробуйте 2 переменные написать на один порт.
    Изображения Изображения

  6. #6

    По умолчанию

    Цитата Сообщение от PupaJr Посмотреть сообщение
    А они уже привязаны - каждый бит - своя переменная и привязать всё слово на переменную типа WORD не даёт - ругается что переназначение происходит. Это же работает со входами, а почему на выхода не работает -вот это интересно, или по тому что это выхода их состояние читать нельзя ?? - это бред, выходной регистр тоже должен быть доступен для чтения.
    Наверное потому, чтобы не было конфликта при изменении выхода одновременно и через битовые переменные и через маску. А вот при чтении в виде маски или отдельных бит проблем нет.
    Возможно здесь поможет объединение (UNION)

  7. #7

    По умолчанию

    Цитата Сообщение от PupaJr Посмотреть сообщение
    хе, Вы думаете это я не делал, писал же что не даёт - вот картинка... или я не так делаю... Вы сами попробуйте 2 переменные написать на один порт.
    Вот у меня так, только одно отличие, у меня сразу Word'у присвоение, не битам внутри, все работает, никаких конфликтов
    Изображения Изображения
    • Тип файла: png q1.png (437.7 Кб, Просмотров: 15)

  8. #8

    По умолчанию

    Вот отдельно по битам выхода...

    И почему у вас в имени переменной фигурирует TargetVars? Какая версия codesys'а. Может конечно не в 3.5.17 по-другому, не помню если честно...
    Изображения Изображения
    • Тип файла: png q2.png (425.6 Кб, Просмотров: 14)
    Последний раз редактировалось МихаилГл; 20.09.2023 в 06:27.

  9. #9

    По умолчанию

    Цитата Сообщение от PupaJr Посмотреть сообщение
    А они уже привязаны - каждый бит - своя переменная и привязать всё слово на переменную типа WORD не даёт - ругается что переназначение происходит. Это же работает со входами, а почему на выхода не работает -вот это интересно, или по тому что это выхода их состояние читать нельзя ?? - это бред, выходной регистр тоже должен быть доступен для чтения.
    Похоже если вы внутри ворда соотнесли для каждого бита свою переменную, то основному ворду изменить имя уже нельзя... Надо попробовать.

  10. #10

    По умолчанию

    Каждый бит это какой-то вход или выход, я их сделал все глобальными переменными, чтобы с любого места до них можно было достучаться (как в Си).
    В описании портов - они и привязаны, я с начала хотел сделать через слова а потом в программе с помощью логических операций И/ИЛИ вычленять биты по маске.. но это показалось мне нудятиной.. поскольку есть нормальная возможность работать сразу с битами вот и отказался от чтения всего слова.. а вот пришлось вернуться к этой идее а "среда" не даёт привязать одновременно и битовые описния портов и слово порта - или то или то... может у меня просто не получается...

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 28.06.2021, 17:20
  2. Ответов: 1
    Последнее сообщение: 24.08.2017, 07:14
  3. Ответов: 5
    Последнее сообщение: 16.09.2016, 00:56
  4. Ответов: 5
    Последнее сообщение: 06.05.2015, 13:13
  5. ПЛК110-32 прямое управление портами
    от judchin в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 14.07.2014, 21:41

Ваши права

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