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

Тема: Обращение к дискр. выходам через битовую строку WORD

  1. #1

    По умолчанию Обращение к дискр. выходам через битовую строку WORD

    Как можно организовать программно (или сконфигурировать) работу с всеми дискретными выходами через переменную типа word, uint ? (для PLC 100)

  2. #2

    По умолчанию

    Цитата Сообщение от Chupakabra Посмотреть сообщение
    Как можно организовать программно (или сконфигурировать) работу с всеми дискретными выходами через переменную типа word, uint ? (для PLC 100)
    Прямое обращение невозможно, однако можно делать так:
    написать задачу, к-я будет периодически считывать значение переменной типа DWORD, где хранится значение выходов и управлять физ. выходами.
    Тролль-наседка, добрый, нежный и ласковый

  3. #3

    По умолчанию

    А не подскажете как можно перевести переменную word в массив boolean на 16 элементов?

  4. #4

    По умолчанию

    Цитата Сообщение от Chupakabra Посмотреть сообщение
    А не подскажете как можно перевести переменную word в массив boolean на 16 элементов?
    Для переменных типа BYTE, WORD, DWORD можно работать с битами так
    my_var.x:=y; где x - число -номер бита, а y значение

    Если хочется к битам обращаться в цикле через итератор
    используйте функции util.lib PACK и EXTRACT
    Последний раз редактировалось Малышев Олег; 07.02.2007 в 14:22.

  5. #5

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Прямое обращение невозможно, однако можно делать так:
    написать задачу, к-я будет периодически считывать значение переменной типа DWORD, где хранится значение выходов и управлять физ. выходами.
    Про задачу понятно, но переменную заводить не обязательно...
    т.к. если обращаться по МЭК адресам можно написать
    %QX1.0:=%IX0.0;
    или
    %QW1.0:=%IW0.0;

  6. #6

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Про задачу понятно, но переменную заводить не обязательно...
    т.к. если обращаться по МЭК адресам можно написать
    %QX1.0:=%IX0.0;
    или
    %QW1.0:=%IW0.0;
    А что вы имелли ввиду, когда говорили что переменную заводить не обязательно ? Непонятно.

  7. #7

    По умолчанию

    Область памяти в ПЛК, которая отвечает за ввод-вывод адресуется через т.н. МЭК адреса. %I... - адреса входов %Q... - адреса выходов, %IX0.0.0 - переменная типа bool (один битная )со смещением 0. %IX0.0.1 - тоже со смещением один бит. Кодесис поддерживает операции с использованием вместо переменных таких адресов. Вы можете написать %QX1.1:=%IX0.0 AND %IX0.1; Т.е. на второй бит первого байта области вывода записать результат операции "И" над битами со смещением 0 и 1 в области ввода.

  8. #8

    По умолчанию

    Всем спасибо поразрядная адресация (my_var.x: где x - число -номер бита) - то что нужно.

  9. #9

    По умолчанию

    Если выход/вход ПЛК типа dword, возможно ли эти входы/выходы интерпритировать в виде массива типа bool без конструкции вида my_var.x:=y ? а сразу перевести dword в массив?

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    9,721

    По умолчанию

    Цитата Сообщение от xoxa Посмотреть сообщение
    Если выход/вход ПЛК типа dword, возможно ли эти входы/выходы интерпритировать в виде массива типа bool без конструкции вида my_var.x:=y ? а сразу перевести dword в массив?
    нет, только через указатель
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

Ваши права

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