CANopen connection between my PLC (1500) siemens and control board

Hello everyone . i want to make CANopen connection between my PLC (1500) siemens and control card. the connection is okay in run mode. i want to read/ write SDO data from a CAN Node by using a PN CANopen Manager. i used two FB from simens to read and write the SDO data. the configration for SDO read as folows :

#SDOread[83].execute := “DataCANpsuCard”.execute[0];
#SDOread[83].hwIoOfManagerModul := 273;
#SDOread[83].accessChannel := 1;
#SDOread[83].nodeId := 1;
#SDOread[83].odIndex := 16#200b;
#SDOread[83].odSubindex := 16#00;

#SDOread[83](execute := #SDOread[83].execute,
hwIoOfManagerModul := #SDOread[83].hwIoOfManagerModul,
accessChannel := #SDOread[83].accessChannel,
nodeId := #SDOread[83].nodeId,
odIndex := #SDOread[83].odIndex,
odSubindex := #SDOread[83].odSubindex,
lenOfSdoToRead := #SDOread[83].lenOfSdoToRead,
done => #SDOread[83].done,
busy => #SDOread[83].busy,
error => #SDOread[83].error,
status => #SDOread[83].status,
diagnostics => #SDOread[83].diagnostics,
sdoNumberOfBytesRead => #SDOread[83].sdoNumberOfBytesRead,
readData := #SDOreadData83);

and the configration for SDO write as folows :
#SDOwrite[0].execute := “DataCANpsuCard”.execute[1];
#SDOwrite[0].hwIoOfManagerModul := 273;
#SDOwrite[0].accessChannel := 1;
#SDOwrite[0].nodeId := 1;
#SDOwrite[0].odIndex := 16#2100;
#SDOwrite[0].odSubindex := 16#00;

“XsmMergeDINTtoBYTE”(ixEnable := TRUE,
ixByteSwap := FALSE,
idInput := “DataCANpsuCard”.psu.write.controlWord,
obInput1 => #SDOwriteData00[0],
obInput2 => #SDOwriteData00[1],
obInput3 => #SDOwriteData00[2],
obInput4 => #SDOwriteData00[3]);

#SDOwrite[0](execute := #SDOwrite[0].execute,
hwIoOfManagerModul := #SDOwrite[0].hwIoOfManagerModul,
accessChannel := #SDOwrite[0].accessChannel,
nodeId := #SDOwrite[0].nodeId,
odIndex := #SDOwrite[0].odIndex,
odSubindex := #SDOwrite[0].odSubindex,
sdoBytesToWrite := #SDOwrite[0].sdoBytesToWrite,
done => #SDOwrite[0].done,
busy => #SDOwrite[0].busy,
error => #SDOwrite[0].error,
status => #SDOwrite[0].status,
diagnostics => #SDOwrite[0].diagnostics,
writeData := #SDOwriteData00);

my question is, i can read the data from the control card, but i cant write the data on the control card. when i tray to write the data, the error bit change for a second to true, and status give me error with code : 8000. who can help me please to read and write data on the control board.

Thanks
Hello everyone . i want to make CANopen connection between my PLC (1500) siemens and control card. the connection is okay in run mode. i want to read/ write SDO data from a CAN Node by using a PN CANopen Manager. i used two FB from simens to read and write the SDO data. the configration for SDO read as folows :

#SDOread[83].execute := “DataCANpsuCard”.execute[0];
#SDOread[83].hwIoOfManagerModul := 273;
#SDOread[83].accessChannel := 1;
#SDOread[83].nodeId := 1;
#SDOread[83].odIndex := 16#200b;
#SDOread[83].odSubindex := 16#00;

#SDOread[83](execute := #SDOread[83].execute,
hwIoOfManagerModul := #SDOread[83].hwIoOfManagerModul,
accessChannel := #SDOread[83].accessChannel,
nodeId := #SDOread[83].nodeId,
odIndex := #SDOread[83].odIndex,
odSubindex := #SDOread[83].odSubindex,
lenOfSdoToRead := #SDOread[83].lenOfSdoToRead,
done => #SDOread[83].done,
busy => #SDOread[83].busy,
error => #SDOread[83].error,
status => #SDOread[83].status,
diagnostics => #SDOread[83].diagnostics,
sdoNumberOfBytesRead => #SDOread[83].sdoNumberOfBytesRead,
readData := #SDOreadData83);

and the configration for SDO write as folows :
#SDOwrite[0].execute := “DataCANpsuCard”.execute[1];
#SDOwrite[0].hwIoOfManagerModul := 273;
#SDOwrite[0].accessChannel := 1;
#SDOwrite[0].nodeId := 1;
#SDOwrite[0].odIndex := 16#2100;
#SDOwrite[0].odSubindex := 16#00;

“XsmMergeDINTtoBYTE”(ixEnable := TRUE,
ixByteSwap := FALSE,
idInput := “DataCANpsuCard”.psu.write.controlWord,
obInput1 => #SDOwriteData00[0],
obInput2 => #SDOwriteData00[1],
obInput3 => #SDOwriteData00[2],
obInput4 => #SDOwriteData00[3]);

#SDOwrite[0](execute := #SDOwrite[0].execute,
hwIoOfManagerModul := #SDOwrite[0].hwIoOfManagerModul,
accessChannel := #SDOwrite[0].accessChannel,
nodeId := #SDOwrite[0].nodeId,
odIndex := #SDOwrite[0].odIndex,
odSubindex := #SDOwrite[0].odSubindex,
sdoBytesToWrite := #SDOwrite[0].sdoBytesToWrite,
done => #SDOwrite[0].done,
busy => #SDOwrite[0].busy,
error => #SDOwrite[0].error,
status => #SDOwrite[0].status,
diagnostics => #SDOwrite[0].diagnostics,
writeData := #SDOwriteData00);

my question is, i can read the data from the control card, but i cant write the data on the control card. when i tray to write the data, the error bit change for a second to true, and status give me error with code : 8000. who can help me please to read and write data on the control board.

Thanks

Hello everyone . i want to make CANopen connection between my PLC (1500) siemens and control card. the connection is okay in run mode. i want to read/ write SDO data from a CAN Node by using a PN CANopen Manager. i used two FB from simens to read and write the SDO data. the configration for SDO read as folows :

#SDOread[83].execute := “DataCANpsuCard”.execute[0];
#SDOread[83].hwIoOfManagerModul := 273;
#SDOread[83].accessChannel := 1;
#SDOread[83].nodeId := 1;
#SDOread[83].odIndex := 16#200b;
#SDOread[83].odSubindex := 16#00;

#SDOread[83](execute := #SDOread[83].execute,
hwIoOfManagerModul := #SDOread[83].hwIoOfManagerModul,
accessChannel := #SDOread[83].accessChannel,
nodeId := #SDOread[83].nodeId,
odIndex := #SDOread[83].odIndex,
odSubindex := #SDOread[83].odSubindex,
lenOfSdoToRead := #SDOread[83].lenOfSdoToRead,
done => #SDOread[83].done,
busy => #SDOread[83].busy,
error => #SDOread[83].error,
status => #SDOread[83].status,
diagnostics => #SDOread[83].diagnostics,
sdoNumberOfBytesRead => #SDOread[83].sdoNumberOfBytesRead,
readData := #SDOreadData83);

and the configration for SDO write as folows :
#SDOwrite[0].execute := “DataCANpsuCard”.execute[1];
#SDOwrite[0].hwIoOfManagerModul := 273;
#SDOwrite[0].accessChannel := 1;
#SDOwrite[0].nodeId := 1;
#SDOwrite[0].odIndex := 16#2100;
#SDOwrite[0].odSubindex := 16#00;

“XsmMergeDINTtoBYTE”(ixEnable := TRUE,
ixByteSwap := FALSE,
idInput := “DataCANpsuCard”.psu.write.controlWord,
obInput1 => #SDOwriteData00[0],
obInput2 => #SDOwriteData00[1],
obInput3 => #SDOwriteData00[2],
obInput4 => #SDOwriteData00[3]);

#SDOwrite[0](execute := #SDOwrite[0].execute,
hwIoOfManagerModul := #SDOwrite[0].hwIoOfManagerModul,
accessChannel := #SDOwrite[0].accessChannel,
nodeId := #SDOwrite[0].nodeId,
odIndex := #SDOwrite[0].odIndex,
odSubindex := #SDOwrite[0].odSubindex,
sdoBytesToWrite := #SDOwrite[0].sdoBytesToWrite,
done => #SDOwrite[0].done,
busy => #SDOwrite[0].busy,
error => #SDOwrite[0].error,
status => #SDOwrite[0].status,
diagnostics => #SDOwrite[0].diagnostics,
writeData := #SDOwriteData00);

my question is, i can read the data from the control card, but i cant write the data on the control card. when i tray to write the data, the error bit change for a second to true, and status give me error with code : 8000. who can help me please to read and write data on the control board.

Thanks
Hello everyone . i want to make CANopen connection between my PLC (1500) siemens and control card. the connection is okay in run mode. i want to read/ write SDO data from a CAN Node by using a PN CANopen Manager. i used two FB from simens to read and write the SDO data. the configration for SDO read as folows :

#SDOread[83].execute := “DataCANpsuCard”.execute[0];
#SDOread[83].hwIoOfManagerModul := 273;
#SDOread[83].accessChannel := 1;
#SDOread[83].nodeId := 1;
#SDOread[83].odIndex := 16#200b;
#SDOread[83].odSubindex := 16#00;

#SDOread[83](execute := #SDOread[83].execute,
hwIoOfManagerModul := #SDOread[83].hwIoOfManagerModul,
accessChannel := #SDOread[83].accessChannel,
nodeId := #SDOread[83].nodeId,
odIndex := #SDOread[83].odIndex,
odSubindex := #SDOread[83].odSubindex,
lenOfSdoToRead := #SDOread[83].lenOfSdoToRead,
done => #SDOread[83].done,
busy => #SDOread[83].busy,
error => #SDOread[83].error,
status => #SDOread[83].status,
diagnostics => #SDOread[83].diagnostics,
sdoNumberOfBytesRead => #SDOread[83].sdoNumberOfBytesRead,
readData := #SDOreadData83);

and the configration for SDO write as folows :
#SDOwrite[0].execute := “DataCANpsuCard”.execute[1];
#SDOwrite[0].hwIoOfManagerModul := 273;
#SDOwrite[0].accessChannel := 1;
#SDOwrite[0].nodeId := 1;
#SDOwrite[0].odIndex := 16#2100;
#SDOwrite[0].odSubindex := 16#00;

“XsmMergeDINTtoBYTE”(ixEnable := TRUE,
ixByteSwap := FALSE,
idInput := “DataCANpsuCard”.psu.write.controlWord,
obInput1 => #SDOwriteData00[0],
obInput2 => #SDOwriteData00[1],
obInput3 => #SDOwriteData00[2],
obInput4 => #SDOwriteData00[3]);

#SDOwrite[0](execute := #SDOwrite[0].execute,
hwIoOfManagerModul := #SDOwrite[0].hwIoOfManagerModul,
accessChannel := #SDOwrite[0].accessChannel,
nodeId := #SDOwrite[0].nodeId,
odIndex := #SDOwrite[0].odIndex,
odSubindex := #SDOwrite[0].odSubindex,
sdoBytesToWrite := #SDOwrite[0].sdoBytesToWrite,
done => #SDOwrite[0].done,
busy => #SDOwrite[0].busy,
error => #SDOwrite[0].error,
status => #SDOwrite[0].status,
diagnostics => #SDOwrite[0].diagnostics,
writeData := #SDOwriteData00);

my question is, i can read the data from the control card, but i cant write the data on the control card. when i tray to write the data, the error bit change for a second to true, and status give me error with code : 8000. who can help me please to read and write data on the control board.

Thanks

Please create a support case at support.hms-networks.com for help with this issue.