Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 23

Тема: Проблемы с проектом для ПЛК304

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

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

    По умолчанию

    теперь уже не важно написано где-то или нет) что мне с этим делать? придется самому побитово пересобирать REAL из LREAL и обратно?

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

    По умолчанию

    в справке имеется замечание по поводу работы длинного реала
    А как поступить, можно воспользоваться поиском, у Вас не первого же встречается такая проблема
    Изображения Изображения
    • Тип файла: png owen.png (62.1 Кб, Просмотров: 21)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3

    По умолчанию

    Нашел вот это. Библиотеку в КДС3 подключить не смог. А код товарища vitiali по моему не совсем верен.
    в частности мне не совсем понятно это условие:
    Код:
    IF mant>0 THEN            (*чтобы при нулевой мантисе не вылизло какое-нибудь число*)
    expon:=expon-1023;
    expon:=expon+127;  (*если мантиса больше 0 экспон. приймет значения *)
    END_IF
    Написал свои функции для преобразования LREAL в REAL:
    Код:
    FUNCTION LREAL2REAL : REAL
    VAR_INPUT
    	IN: LWORD;
    END_VAR
    VAR
    	lwMant: LWORD;
    	lwExpon: LWORD;
    	lwSign: LWORD;
    	lwREAL: LWORD;
    	pREAL: POINTER TO REAL;
    END_VAR
    
    lwMant:=SHR(IN,29) AND 16#7FFFFF;
    lwExpon:=SHR(IN,52) AND 16#7FF;
    IF lwExpon<896 THEN
    	lwExpon:=0;
    ELSIF lwExpon>1151 THEN
    	lwExpon:=255;
    ELSE
    	lwExpon:=lwExpon+127-1023;
    END_IF
    lwExpon:=SHL(lwExpon,23);
    lwSign:=SHR(IN,32) AND 16#80000000;
    lwREAL:=lwMant OR lwExpon OR lwSign;
    pREAL:=ADR(lwREAL);
    LREAL2REAL:=pREAL^;
    и обратно:
    Код:
    FUNCTION REAL2LREAL : LWORD
    VAR_INPUT
    	IN: REAL;
    END_VAR
    VAR
    	lwMant: LWORD;
    	lwExpon: LWORD;
    	lwSign: LWORD;
    	pIN: POINTER TO LWORD;
    	aIN: ARRAY [0..1] OF REAL;
    END_VAR
    
    aIN[0]:=IN;
    pIN:=ADR(aIN);
    lwMant:=SHL(pIN^ AND 16#7FFFFF,29);
    lwExpon:=SHL((SHR(pIN^,23) AND 16#FF)+1023-127,52);
    lwSign:=SHL(pIN^ AND 16#80000000,32);
    REAL2LREAL:=lwMant OR lwExpon OR lwSign;

  4. #4

    По умолчанию

    Новая проблема с Modbus.
    Пытаюсь настроить обмен двух контроллеров по ModbusTCP. В слейве указываю нужное кол-во регистров на чтение и запись:
    Снимок.PNG
    делаю соотнесение входов и выходов с соответствующими массивами, которые будут использоваться в качестве буферов:
    Снимок2.PNG

    и тут возникает вопрос: а мастеру по каким адресам надо обращаться?

    В слейве не нашел где указан адрес (начальный адрес регистров чтения/записи). Где-то читал, что одни регистры начинаются с адреса 2000, другие с 3000, но какие именно не помню, и вообще к ПЛК/КДС это относилось ли. Сейчас этот документ найти не могу.

    На "странице конфигурации" вроде как есть нужные поля, но они почему-то затенены.

    Еще не понятно вот это:
    Регистры временного хранения – определяют количество holding регистров
    канала. Параметр может принимать значения от 2 до 40 (см. рис. 11.25);
    Входные регистры – определяют количество input регистров канала. Параметр
    может принимать значения от 2 до 40 (см. рис. 11.25).
    А если мне надо передать 1000 регистров?
    Последний раз редактировалось GIR; 02.03.2016 в 12:32.

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

    По умолчанию

    Цитата Сообщение от GIR Посмотреть сообщение
    и тут возникает вопрос: а мастеру по каким адресам надо обращаться?
    с нуля не пробовали еще?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  6. #6

    По умолчанию

    Предположим регистры %IW начинаются с 0, а %QW тогда с какого? Тоже с 0?

  7. #7

    По умолчанию

    а что с 1000 регистров делать? Для каждых 40 регистров отдельное устройство создавать?

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

    По умолчанию

    Цитата Сообщение от GIR Посмотреть сообщение
    а что с 1000 регистров делать? Для каждых 40 регистров отдельное устройство создавать?
    переходите на библиотеки
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

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

    По умолчанию

    так то их требуется опрашивать разными функциями модбаса почему бы и нет, проверить то трех минут достаточно
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  10. #10

    По умолчанию

    А, похоже дошло.
    Если мастер делает запрос с командой 03 и адресом регистра 0, то он обращается к регистрам IW (временного хранения).
    Если команда 04 и адрес 0, то он читает регистры QW (входные).
    Если команда 16 и адрес 0, то запись регистров QW.

    Так?

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Помощь с проектом. Убрали реле - проект не работает
    от sdika в разделе Программируемые реле
    Ответов: 2
    Последнее сообщение: 22.10.2014, 23:07
  2. ПЛК304 - проблемы с подключением к терминалу
    от s22 в разделе ПЛК3xx (архив)
    Ответов: 1
    Последнее сообщение: 07.11.2013, 10:18
  3. помогите с проектом!!!
    от КИП42 в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 12.09.2010, 14:42
  4. помогите с проектом теплицы
    от koval.sergei в разделе Подбор Оборудования
    Ответов: 15
    Последнее сообщение: 04.07.2007, 02:49

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

Ваши права

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