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

Тема: СПК107 и Lectus. Передача переменных типа Real

  1. #11

    По умолчанию

    ну...лишний код

  2. #12

    По умолчанию

    А я что-то торможу уже к вечеру. Одна переменная типа Real спокойно передается в Лектус, т.к. просто на вход данных функционального блока просто подаем указатель на эту переменную, а на вход количества данных просто размер переменной. А вот 2,3 и больше переменных передавать нужно, как я понимаю, с помощью формирования массива данных? Что-то у меня не получилось этот массив создать с помощью побайтного копирования-компилятор ругается.
    пытался сделать нечто следующее:
    VAR
    e,f: real;
    pt: pointer to byte;
    my_array: array[1..8] of byte;
    END_VAR
    pt:=adr(e);
    my_array[1]:=pt^;
    my_array[2]:=(pt+1)^;
    ...
    ...
    pt:=adr(f);
    my_array[5]:=pt^;
    my_array[6]:=(pt+1)^;

    Ну и т.д.
    Может я совсем затупил? Подтолкните в нужном направлении...

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

    По умолчанию

    бред какой то, нет возможности сейчас на трешке показать, в дереве регистров именуете всё через раз, а далее как на картинке просто присваиваете и всё, зачем на байты то всё "бить"



    ЗЫ улыбнуло про лишний код, где он?
    Изображения Изображения
    • Тип файла: png owen.png (34.4 Кб, Просмотров: 114)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  4. #14

    По умолчанию

    Как это где? На картинке справа. Если ставить не 2 байта, а флоат, то он не нужен

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

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Как это где? На картинке справа. Если ставить не 2 байта, а флоат, то он не нужен
    покажите тогда скрин в третьем КДС, как Вы ставите там реалы
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  6. #16

    По умолчанию

    В третьем ещё не приходилось, только планирую в нем работать

  7. #17

    По умолчанию

    ошибка 43 - это ошибка библиотеки, не удалось пропинговать через драйвер серверный IP адрес ( по умолчанию DNS Google поставил = 8.8.8.8 ).
    модуль Ethernet в проекте никаким образом не влияет на на эту ошибку.
    по разбитию и слиянию флоатов повторю вложением. импортируйте в проект и собирайте/разбирайте.
    Вложения Вложения

  8. #18

    По умолчанию

    Артем, спасибо! А насчет ошибки я уже понял, что это проделки связи. Попозже к вечеру связь стала устойчивой и я гонял переменные по GPRS больше часа. Но вот еще что заметил: если FB_GPRS доходит до 43-ей ошибки (про другие не знаю) и на нем выставляется Restarting, то все - больше GPRS не перезапустишь, только передергивание питания помогает. Может там в FB_GPRS какую-то переменную нужно сбросить? Или я чего-то не так делаю? Или это проделки оператора (в чем крайне сомневаюсь)?

  9. #19

    По умолчанию

    Вот, нашел в ветке "СПК107+ПМ01" обсуждение аналогичной проблемы с FB_GPRS. Возникли вопросы:
    вообще рестарт - это :
    1) закрытие всех процессов в линуксе связанных с GPRS

    А как это сделать из программы?
    2) проверочное завершение звонка для модема и перевод в режим приёма АТ команд.
    Это дождаться пока на выходе FB_GPRS.Done появится FALSE?
    3) переподключение.
    Это, как я понимаю, опять подать на FB_GPRS.Enable:=TRUE и дождаться на FB_GPRS.Done появления TRUE?
    Несколько смутило: на крайний случай, можете снять флаг Enable. подождать секунд 10, свести на пару секунд ( пока библиотека проверит стартовые компоненты в системе) , далее снять, выдержать паузу завершения всех процессов пункта 1 и 2. начать заново. . Дело в том, что Enable переводил в False и ждал достаточно долго. А вот дальше не совсем понял что это значит? Флаг Enable снимаем, далее что свести на пару секунд? Или это взвести флаг Enable на пару секунд? Если так, то остальное становится понятно.
    Последний раз редактировалось Hemann; 03.02.2015 в 11:32.

  10. #20

    По умолчанию

    Вот, нашел в ветке "СПК107+ПМ01" обсуждение аналогичной проблемы с FB_GPRS. Возникли вопросы:
    вообще рестарт - это :
    1) закрытие всех процессов в линуксе связанных с GPRS

    А как это сделать из программы?
    лучше не стоит, т.к. закрытие процессов делал цикличным до достижения результата. а так - библиотека sysexecute для работы с консолью linux.
    2) проверочное завершение звонка для модема и перевод в режим приёма АТ команд.
    Это дождаться пока на выходе FB_GPRS.Done появится FALSE?
    правильно.
    3) переподключение.
    Это, как я понимаю, опять подать на FB_GPRS.Enable:=TRUE и дождаться на FB_GPRS.Done появления TRUE?
    Несколько смутило: на крайний случай, можете снять флаг Enable. подождать секунд 10, свести на пару секунд ( пока библиотека проверит стартовые компоненты в системе) , далее снять, выдержать паузу завершения всех процессов пункта 1 и 2. начать заново. . Дело в том, что Enable переводил в False и ждал достаточно долго. А вот дальше не совсем понял что это значит? Флаг Enable снимаем, далее что свести на пару секунд? Или это взвести флаг Enable на пару секунд? Если так, то остальное становится понятно.

    именно про стартовый флаг на Enable я и говорю. управляется запуск именно по нему. по заднему фронту этой переменной инициализируется алгоритм останова всех процессов библиотеки, по завершению которых done становится false.
    по поводу флага restarting. видимо этот момент я пропустил (когда не удаётся подсоединиться он не сбрасывается, а лишь выдаётся ошибка 43 (учтём для релиза и подправим))

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

Похожие темы

  1. Ответов: 12
    Последнее сообщение: 28.04.2014, 13:45
  2. Ответов: 7
    Последнее сообщение: 05.03.2014, 11:00
  3. Ответов: 19
    Последнее сообщение: 09.02.2011, 09:15
  4. чтение переменных типа Bool в панели сп270
    от @le][ в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 29.11.2009, 01:04

Ваши права

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