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

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

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

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

    По умолчанию плк-63+мдвв

    Добрый день! Что-то никак не получается считать состояние входов МДВВ и записать что-либо на его выходы с помощью ПЛК-63 по протоколу Modbus.
    У кого имеется, выложите, пожалуйста, РАБОЧИЙ вариант программы (желательно, на FBD или CFC). За полезные ссылки буду благодарен!

  2. #2

    По умолчанию

    На диске ПЛК63 есть рабочие примеры чтения и записи регистров контроллером ПЛК63 Модбас Мастер. На базе их написал процедуру обмена с МДВВ в режиме Modbus RTU. Если надо, могу выслать по электронной почте, давайте адрес.

  3. #3

    По умолчанию

    kolyan_bk@mail.ru.
    Заранее благодарен!

  4. #4

    По умолчанию

    пока что ответа нив почте, ни на форуме не увидел... :-(

  5. #5

    Smile

    экий вы, батенька нетерпеливый, сейчас вышлю.

  6. #6

    По умолчанию

    спасибо большое!
    завтра попробую!

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

    По умолчанию

    попробуй подтянуть входы через резистор к плюсу.

  8. #8

    По умолчанию

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

  9. #9

    По умолчанию

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

    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.

  10. #10

    По умолчанию

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

    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.
    На готовом-то мне,конечно удобно... А вот где бы почитать по какому принципу из буффера извлекают данные? Я новичек, поэтому не пойму зачем все эти побитные сдвиги... И сам принцип извлечения данных из буффера не понятен. А в РЭ про это ни слова, кстати, нет!

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

Ваши права

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