
Сообщение от
Филоненко Владислав
какую такую ошибку? нет никакой принципиальной разницы между пользовательскими и параметрами в конфигурации. за исключением контроля диапазона. может вы в нее число вне диапазона пишите?
Так выше же приведен дамп:
Пишется число 1.0 [00][00][3F][80]; Байты переставляются местами согласно спецификации modbus. Float отплавляются в ПЛК теми же ф-ями, что и пользовательсткие конфигурациооные float, которые пишутся и читаем на ЖКИ ПЛК то же значение, что пишется.
У кого есть ПЛК-63 - можете попробовать включить и выключить выход 0 по modbus? Бесплатная утилита http://www.terring.ru/files/apps/Ter...-Installer.exe
За 2 транзакции это число (1.0 [00][00][3F][80]) пишется, но только по адресам {0,1}.И с них же читается. На ПЛК щелкает релюшка.
М.б. в документациии групповые адреса не те?
Код:
/*============================*/
1.0== [00] [00] [80] [3f]
0.5== [00] [00] [00] [3f]
0.1==[cd] [cc] [cc] [3d]
0.01==[0a] [d7] [23] [3c]
/*============================*/
/* программка печатает дамп 4х байт памяти, которое занимает float число */
int main()
{float v;
int i;
unsigned char *p;
p=(unsigned char *) &v;
v= 1.0;
for(i=0; i < 4; i++)
printf("[%02x] ", p[i]);
return;
}