Просмотр полной версии : 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, огромное тебе человеческое спасибо. Сам бы не догадался.
Спорягин Кирилл
08.09.2015, 17:07
заработало, пост удалил
если у кого то будет такая же проблема
то лечится так
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.
Спасибо, тоже наткнулся, подправил по совету - заработало.
Но у меня немного другая схема:
if SetData then Buffer := SendBuffer;
MB_WR_Regs(Enable := SetData, ...);
SetData := False;
Нельзя трогать буфер не пока Enable=true, а пока идет обмен, т.е. в промежуток между фронтом Enable=true и установкой Complete в true.
другими словами, пока не поднимется передний фронт комплита, в буфере нет нужных данных, не так ли
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot