Показано с 1 по 4 из 4

Тема: MODBUS FB MB_WR_REGS , всегда завершается с ошибкой 255

  1. #1
    Пользователь Аватар для tkont
    Регистрация
    22.10.2014
    Адрес
    Санкт-Петербург
    Сообщений
    60

    По умолчанию MODBUS FB MB_WR_REGS , всегда завершается с ошибкой 255

    заработало, пост удалил

    если у кого то будет такая же проблема
    то лечится так
    Код:
    			IF MB_WR_REGS.Enable = FALSE THEN				
    					Buffer[1] := WORD_TO_BYTE(x1);
    					Buffer[0] := WORD_TO_BYTE( SHR(x1,8));
    				END_IF
    то есть нельзя трогать буфер пока
    MB_WR_REGS (Enable:= TRUE);
    Изображения Изображения
    Вложения Вложения
    Последний раз редактировалось tkont; 11.12.2014 в 14:29. Причина: заработало

  2. #2

    По умолчанию

    tkont, огромное тебе человеческое спасибо. Сам бы не догадался.

  3. #3
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Цитата Сообщение от tkont Посмотреть сообщение
    заработало, пост удалил

    если у кого то будет такая же проблема
    то лечится так
    Код:
    			IF MB_WR_REGS.Enable = FALSE THEN				
    					Buffer[1] := WORD_TO_BYTE(x1);
    					Buffer[0] := WORD_TO_BYTE( SHR(x1,8));
    				END_IF
    то есть нельзя трогать буфер пока
    MB_WR_REGS (Enable:= TRUE);
    Спасибо, тоже наткнулся, подправил по совету - заработало.
    Но у меня немного другая схема:
    if SetData then Buffer := SendBuffer;
    MB_WR_Regs(Enable := SetData, ...);
    SetData := False;

    Нельзя трогать буфер не пока Enable=true, а пока идет обмен, т.е. в промежуток между фронтом Enable=true и установкой Complete в true.
    Последний раз редактировалось Спорягин Кирилл; 08.09.2015 в 17:11. Причина: Уточнение

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

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    Спасибо, тоже наткнулся, подправил по совету - заработало.
    Но у меня немного другая схема:
    if SetData then Buffer := SendBuffer;
    MB_WR_Regs(Enable := SetData, ...);
    SetData := False;

    Нельзя трогать буфер не пока Enable=true, а пока идет обмен, т.е. в промежуток между фронтом Enable=true и установкой Complete в true.
    другими словами, пока не поднимется передний фронт комплита, в буфере нет нужных данных, не так ли
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

Похожие темы

  1. FB PID_FUNCTION на выходе -1.#QNAN
    от olegV в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 21.12.2010, 20:27
  2. пм01 подскажите что делать с ошибкой?
    от Silicone в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.11.2010, 00:49
  3. помогите разобраться с ошибкой при опросе мва8
    от Smile72 в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 15.05.2009, 00:44
  4. найти Fb
    от aven в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 15.12.2008, 15:16
  5. PID function в FB
    от Антон в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 11.02.2008, 12:17

Ваши права

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