I have found a solution!
I have created 2 task, taskDO and taskDO2:
DAQmxCreateTask("taskDO",&taskDO);
DAQmxCreateTask("taskDO2",&taskDO2);
I have added each channel to one of these tasks: Dev1/port0:3 to the taskDO, Dev1/port6:9 to the taskDO2:
DAQmxCreateDOChan(taskDO,"Dev1/port0:3","port0_3",DAQmx_Val_ChanForAllLines)
DAQmxCreateDOChan(taskDO2,"Dev1/port6:9","port6_9",DAQmx_Val_ChanForAllLines)
Start the two tasks:
DAQmxStartTask(taskDO)
DAQmxStartTask(taskDO2);
After these steps, when i recive the data, i split 0-31 and 32-63 bit into data1 and data2, and using the DAQmxWriteDigitalU32 function i can see the relays working perfect:
//we have the incoming data in a data[64] array
uint32 data1[1];
uint32 data2[1];
uint8 index;
write_value[0] = 0;
write_value2[0] = 0;
//put in write_value[0] the first 32 bits
//first 32 bits
for(index = 0;index<32;index++)
{
data1[0] = data1[0]<<1|*((uint8*)data[31-index]);
}
DAQmxWriteDigitalU32(taskDO,1,0,10.0,0,data1,&numEscritos,NULL);
//second 32 bits
for(index=0;index<mitad;index++)
{
data2[0] = data2[0]<<1|*((uint8*)data[63-index]);
}
DAQmxWriteDigitalU32(taskDO2,1,0,10.0,0,data2,&numEscritos,NULL);
Hope this can help to anyone with a similar problem.