Как я могу написать массив OPC-UA от клиента - PullRequest
0 голосов
/ 04 января 2019

я могу написать массив OPC-UA, но он содержит элемент '0'

например

Я создаю TestArray [6] и init {1,2,3,4,5,6}

и затем я делаю запись в массив v1 [6] = {33,44,55,66,77,88}.

я проверил UAExpert, TestArray изменен {33,0,44,0,55,0,66}

почему содержится элемент '0'?

i Использовал Visual Studio 2017 и сделал клиента открытым62541

, а Сервер - это устройство ПЛК (B & R PLC) <- почти идеально сервер </p>

UA_Int16 TestVal = 0;

printf("========= Write Value =========\n");

//UA_Variant_setArrayCopy

UA_Variant WVel;
UA_Variant_init(&WVel);
int v1[6] = { 33,44,55,66,77,88 };
UA_Variant_setArrayCopy(&WVel, &v1,7, &UA_TYPES[UA_TYPES_INT16]);

UA_WriteValue wValue;
UA_WriteValue_init(&wValue);
wValue.nodeId = UA_NODEID_STRING_ALLOC(6, "Submarine::ballast:states.Array");
wValue.attributeId = UA_ATTRIBUTEID_VALUE;
wValue.value.value = WVel;
wValue.value.hasValue = true;
//wValue.indexRange = UA_STRING("5");
UA_WriteRequest wReq;
UA_WriteRequest_init(&wReq);
wReq.nodesToWrite = &wValue;
wReq.nodesToWriteSize = 1;

UA_WriteResponse wResp = UA_Client_Service_write(client, wReq);
retval = wResp.responseHeader.serviceResult;
UA_WriteResponse_deleteMembers(&wResp);

Я не могу загрузить изображение, поэтому я даю ссылку

https://imgur.com/OvS5C7D

...