Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 18 из 18

Тема: плк-63+мдвв

  1. #11

    По умолчанию

    спасибо за совет! завтра попробую! а резистор примерно какого сопротивления взять?

  2. #12

    По умолчанию

    Не надо резисторов, добавь в код :

    IF CMPL AND ERR=0 THEN
    INP_WORD:=BYTE_TO_WORD(RD_BUFFER[1]) OR SHL(BYTE_TO_WORD(RD_BUFFER[0]),8);

    И еще можно изменить timeout примерно до 30 ms.

    В принципе так и надо было изначально, но я покоцал, так как иначе другие устройства, которые в этой процедуре опрашиваются не работают, а МДВВ не было тогда. Назад вставить забыл.
    Последний раз редактировалось Алексей Дмитриев; 02.11.2010 в 22:01.

  3. #13

    По умолчанию

    спасибо всем,кто откликнулся! обязательно попробую все варианты!

  4. #14

    По умолчанию

    Цитата Сообщение от валенок Посмотреть сообщение
    ну и мой пример. несколько тяжеловесно, зато, на мой взгляд, универсально. надеюсь достаточно понятно.
    уважаемый валенок! по-моему, ваш пример не для плк-63...

  5. #15

    По умолчанию

    Цитата Сообщение от Алексей Дмитриев Посмотреть сообщение
    Не надо резисторов, добавь в код :

    IF CMPL AND ERR=0 THEN
    INP_WORD:=BYTE_TO_WORD(RD_BUFFER[1]) OR SHL(BYTE_TO_WORD(RD_BUFFER[0]),8);

    И еще можно изменить timeout примерно до 30 ms.

    В принципе так и надо было изначально, но я покоцал, так как иначе другие устройства, которые в этой процедуре опрашиваются не работают, а МДВВ не было тогда. Назад вставить забыл.
    Ур-раа! Заработало! Даже тайм-аут не менял! И скорость 115200.
    На готовом-то мне,конечно удобно... А вот где бы почитать по какому принципу из буффера извлекают данные? Я новичек, поэтому не пойму зачем все эти побитные сдвиги... И сам принцип извлечения данных из буффера не понятен. А в РЭ про это ни слова, кстати, нет!

  6. #16

    По умолчанию

    спасибо ещё раз всем откликнувшимся!!!

  7. #17

    Smile

    Вот тут, как раз все просто:
    библиотечная функция работает с буфером типа массив байт (хз почему? )
    Это выражение преобразует два соседних элемента массива в 16-ти разрядное слово:
    INP_WORD:=BYTE_TO_WORD(RD_BUFFER[1]) OR SHL(BYTE_TO_WORD(RD_BUFFER[0]),8);
    только и всего.

  8. #18

    По умолчанию

    понятно! только странно, почему в руководстве по программированию про это не пишут...

Страница 2 из 2 ПерваяПервая 12

Ваши права

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