Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

Тема: Срочно! Кракозябры после преобразования real>string.

  1. #1
    Пользователь
    Регистрация
    31.10.2010
    Адрес
    Изх россии
    Сообщений
    42

    Smile Срочно! Кракозябры после преобразования real>string.

    язык Fbd.

    Freq_measure (real>string) не меняется (кракозябры). я оставляю Left три знака. Необходимо "обрезать" число до Х.ХХ, иначе значение "гуляет".
    Управление исполнительным - если больше, убавить, если меньше - добавить. При преобразовании значений Out (freq_measure) из Real>string кракозябры.


    в режиме эмуляции всё работает, после заливки в плк значение
    при преобразовании в другие типы краков не наблюдаю - зато теряются цифры после запятой Х - т.е. мне не нужны целые числа.

    P/S
    Только не умничать! Знал бы - не спрашивал!

  2. #2

    По умолчанию

    я наваял свою функцию и больше не маюсь.
    FUNCTION RealToString : STRING(16)
    VAR_INPUT
    varReal:REAL;
    NSAP:INT;
    END_VAR

    VAR
    varNull:STRING:='0.';
    varString:STRING;
    varM:REAL;
    i:INT;

    END_VAR

    i:=0;

    IF ABS(varReal)>=1 THEN
    varString:=REAL_TO_STRING(varReal);
    RealToString:=LEFT(varString,FIND(varString,'.')+N SAP);
    ELSE varM:=1;
    FOR i:=1 TO NSAP DO varM:=varM/10; END_FOR
    IF ABS(varReal)<varM THEN RealToString:='0.0';
    ELSE
    IF varReal<0 THEN varNull:='-0.';
    ELSE varNull:='0.';
    END_IF
    varM:=ABS(varReal);
    WHILE varM<0.1 DO
    varNull:=CONCAT(varNull,'0');
    varM:=varM*10;NSAP:=NSAP-1;
    END_WHILE
    FOR i:=1 TO NSAP DO varM:=varM*10; END_FOR
    varString:=LEFT(REAL_TO_STRING(varM),NSAP);
    RealToString:=CONCAT(varNull,varString);
    END_IF
    END_IF

  3. #3
    Пользователь
    Регистрация
    31.10.2010
    Адрес
    Изх россии
    Сообщений
    42

    По умолчанию

    всё это хорошо, но можно на словах или блоками Fbd? выплюнул в буфер число и защёлкнул его, запретив запись.

  4. #4

    По умолчанию

    функцию можно вызывать как угодно, и St и Ld и Fbd и Cfc.

  5. #5
    Пользователь
    Регистрация
    31.10.2010
    Адрес
    Изх россии
    Сообщений
    42

    По умолчанию

    а фукциональный блок какой использовать?

  6. #6

    По умолчанию

    Вам надо почитать руководство CoDeSys,
    в FBD это будет выглядеть так:
    Изображения Изображения
    • Тип файла: jpg fbd.jpg (14.3 Кб, Просмотров: 108)
    Последний раз редактировалось Логвиненко Андрей; 21.11.2010 в 20:13.

  7. #7
    Пользователь
    Регистрация
    31.10.2010
    Адрес
    Изх россии
    Сообщений
    42

    По умолчанию

    а каким образом мне получить этот блок? вставить код выше? библиотеку добавить? или ишо что? у меня только блоки преобразования реал в стринг...

  8. #8

    По умолчанию

    марш в школу.

  9. #9
    Пользователь
    Регистрация
    31.10.2010
    Адрес
    Изх россии
    Сообщений
    42

    По умолчанию

    Я уже институт окончил - разработки в электронике, в том числе на pic %)

  10. #10
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Андрей!
    У Вас в этом месте
    IF ABS(varReal) ELSE
    ошибка.
    исправь те пожалуйста. Видимо, что-то не так скопировали.
    функция полезная, но не работает.

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

Ваши права

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