Страница 14 из 21 ПерваяПервая ... 41213141516 ... ПоследняяПоследняя
Показано с 131 по 140 из 203

Тема: ПЛК63 + SysLibCom, потеря байтов

  1. #131

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Если библиотека позволяет читать пакет байт, то и надо читать пакет. Вероятно, проблемы при обмене по RS-485 при использовании SysLibCom связаны с не совсем корректным управлением шиной сети. Порядок обмена по RS-485 должен быть такой:
    1) Master сети захватывает шину (сразу после подачи питание на устройство, выполняющего роль Maser);
    2) Master делает небольшую паузу и загружает выходной буфер пакетом байт, данные посылаются в сеть;
    3) Master после загрузки буфера держит шину пока весь пакет данных не будет выпихнут в сеть и не дойдет до Slave;
    4) Slave после приема пакета должен сразу захватить шину и только после этого Master отпускает шину и становится на прием.
    Передача от Slave к Master должна происходить аналогично. После приема пакета от Slave Master захватывает шину делает паузу и далее процедура повторяется.
    Очень важным моментом при обмене по RS-485 является то, что шина в каждый момент времени должна быть захвачена хотя бы с одной стороны, ну и процедура перехвата шины должна быть скоординирована. Если не учесть эти моменты (касается того, кто писал SysLibCom), то может происходить то с чем столкнулся многострадальный monteg.
    Интересная теория. Ну так в ком проблема ПЛК63?

  2. #132

    По умолчанию

    Потому что на ПЛК100 ТОТЖЕ КОД работает

  3. #133

    По умолчанию

    Цитата Сообщение от monteg Посмотреть сообщение
    Интересная теория. Ну так в ком проблема ПЛК63?
    Эта теория многократно и успешно проверена на практике. В свое время я очень плотно занимался этими делами. В обмене по RS-485 в прстейшем случае учавствуют два устройства - Master и Slave. Проблемы могут возникнуть если некорректно работают с сетью или тот или другой или оба вместе.
    Если "железо" у ПЛК100 и ПЛК63 сделано совершенно одинаково, то, возможно, у Вас неисправен ПЛК63.
    А о каком коде речь, тот что написали Вы или тот, что зашит в ПЛК63 ?
    Последний раз редактировалось IVM; 22.03.2012 в 11:27.

  4. #134

    По умолчанию

    Да я все про свои примеры...
    Я вот поэтому и просил разобраться с моими примерами, может сам код неверный, может ПЛК63 мне попался не совсем исправный, а может это авторская задумка СОЗДАТЕЛЕЙ ПЛК63.
    А отвечают, ты дурак, у тебя код не сложный ( 100 строк) , на фига это надо, или попробуй то, или подумай что будет если что. Поймите я не занимаюсь разработкой "железки" с rs485. Все эти технические нюансы должны интересовать тех, кто проектировал ПЛК. Меня интересовала другая конкретная проблема. (см. первый пост), а какие там внутри микрухи и как они взаимодействуют, лично мне не интересны.
    Если бы кто-нибудь "официальный" сказал, что это авторская задумка, так работать не будет, или будет работать плохо, то обсуждение на этом бы и закончилось.

  5. #135

    По умолчанию

    Цитата Сообщение от monteg Посмотреть сообщение
    Да я все про свои примеры...
    Я вот поэтому и просил разобраться с моими примерами, может сам код неверный, может ПЛК63 мне попался не совсем исправный, а может это авторская задумка СОЗДАТЕЛЕЙ ПЛК63.
    А отвечают, ты дурак, у тебя код не сложный ( 100 строк) , на фига это надо, или попробуй то, или подумай что будет если что. Поймите я не занимаюсь разработкой "железки" с rs485. Все эти технические нюансы должны интересовать тех, кто проектировал ПЛК. Меня интересовала другая конкретная проблема. (см. первый пост), а какие там внутри микрухи и как они взаимодействуют, лично мне не интересны.
    Если бы кто-нибудь "официальный" сказал, что это авторская задумка, так работать не будет, или будет работать плохо, то обсуждение на этом бы и закончилось.
    Скорее всего, Ваш код корректен если он работает на ПЛК100. А вот если железо ПЛК63 исправно, а связь по RS-485 плохая, то некорректно написана программа прошивки ПЛК63 в той части, которая ведет обмен по сети.

  6. #136

    По умолчанию

    Цитата Сообщение от monteg Посмотреть сообщение
    Так точно. Но почему тогда именно чтение по 1 байт на ПЛК63 глючит.
    Чтение по 1 байту можно же считать частным случаем чтением двумя блоками.
    Заменя
    Код:
    byte_read:=SysComRead(port_number, ADR(buf_otvet), 8, 0);
    на
    Код:
    byte_read:=SysComRead(port_number, ADR(buf_otvet[ 0 ]), 1, 0);
    byte_read:= byte_read + SysComRead(port_number, ADR( buf_otvet[ 1 ] ), 1, 0);
    byte_read:= byte_read + SysComRead(port_number, ADR( buf_otvet[ 2 ] ), 1, 0);
    byte_read:= byte_read + SysComRead(port_number, ADR( buf_otvet[ 3 ] ), 1, 0);
    byte_read:= byte_read + SysComRead(port_number, ADR( buf_otvet[ 4 ] ), 1, 0);
    byte_read:= byte_read + SysComRead(port_number, ADR( buf_otvet[ 5 ] ), 1, 0);
    byte_read:= byte_read + SysComRead(port_number, ADR( buf_otvet[ 6 ] ), 1, 0);
    byte_read:= byte_read + SysComRead(port_number, ADR( buf_otvet[ 7 ] ), 1, 0);
    приводит к ошибкам, про которые я говорил
    Если чтение пакета байт на ПЛК63 идет нормально, то и пользуйтесь этим, что Вы уперлись в чтение по одному байту. Чтение пакетом и быстрее и надежнее (сбоев при обмене будет меньше).

  7. #137

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Скорее всего, Ваш код корректен если он работает на ПЛК100. А вот если железо ПЛК63 исправно, а связь по RS-485 плохая, то некорректно написана программа прошивки ПЛК63 в той части, которая ведет обмен по сети.
    Может и так, но у меня нет ни второго ПЛК63, ни другой прошивки. Если кините ссылку на другую прошивку ( у меня 2.12 10 0f), буду благодарен, попробую. Мне сейчас все равно заняться нечем, siemens жду...

  8. #138

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Если чтение пакета байт на ПЛК63 идет нормально, то и пользуйтесь этим, что Вы уперлись в чтение по одному байту. Чтение пакетом и быстрее и надежнее (сбоев при обмене будет меньше).
    а здесь другое говорят

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Всегда ответ надо читать по 1 байту и сразу анализировать. Ожидать что пришли все байты и только нужное количество байт нельзя. По 1 байту считываем, каждый анализируем на корректность и принимаем решение о конце пачки/бракованной пачке.

    Пример с таким чтением в 2 приёма я проверю, но не скоро.

  9. #139

    По умолчанию

    Цитата Сообщение от monteg Посмотреть сообщение
    Может и так, но у меня нет ни второго ПЛК63, ни другой прошивки. Если кините ссылку на другую прошивку ( у меня 2.12 10 0f), буду благодарен, попробую. Мне сейчас все равно заняться нечем, siemens жду...
    Что можете ответить на пост #63 ?

  10. #140

    По умолчанию

    Цитата Сообщение от monteg Посмотреть сообщение
    а здесь другое говорят
    Глупость это. Еще раз повторяю: обмениваться пакетами байт и быстрее и надежнее. Это благо, что в SysLibCom такая возможность есть.
    Последний раз редактировалось IVM; 22.03.2012 в 11:53.

Страница 14 из 21 ПерваяПервая ... 41213141516 ... ПоследняяПоследняя

Похожие темы

  1. плк63-пм01 потеря байт
    от Elka в разделе ПЛК63/73
    Ответов: 35
    Последнее сообщение: 06.11.2012, 14:26
  2. потеря байтов в ответной посылке с периодом 4-5 с.
    от Смирнов Роман в разделе ПЛК1хх
    Ответов: 44
    Последнее сообщение: 23.04.2009, 07:16
  3. SysLibCom
    от demon в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 20.03.2009, 13:08
  4. ПЛК 150 и SysLibCom.lib.
    от Анатолий в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 13.12.2008, 13:48
  5. SysLibCom 16#FF
    от powerind в разделе ПЛК1хх
    Ответов: 28
    Последнее сообщение: 28.10.2008, 13:41

Ваши права

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