Dear people,
I'm using CanOpen communication with up to 32 device per channel.
it means that under CanOpen manager device I got up 32 slave device.
is there any information that I can use to "understand" that one or more than one slave doesn't exchange data anymore?
this information must be use during machine running, so all device in operational.
thank you in advance
regards
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm exploring how to monitor CAN open and how to handle if error. I am wondering how do you trriger ENABLE variable CANOM_state_node_4(5,6)_enable for GET_STATE? If ENABLE remains TRUE the status doesn't change.
Code would be helpful.
Regards
Alex
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
For the ENABLE trigger I made a small state machine (which toggles the ENABLE trigger, so it is not TRUE all the time, and it keeps on getting the state).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What do you mean with keep getting the state. Is this the correct state, or the old previous state?
I only have experience with Node Guarding where the state of the nodes works correctly.
Do your I/O devices also support node guarding?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Originally created by: MS
Dear people,
I'm using CanOpen communication with up to 32 device per channel.
it means that under CanOpen manager device I got up 32 slave device.
is there any information that I can use to "understand" that one or more than one slave doesn't exchange data anymore?
this information must be use during machine running, so all device in operational.
thank you in advance
regards
CIA 405 Library offers the Funktionblock GetState. I think thats wahat you are searching for.
Regards
Ralph
Originally created by: MS
thank you a lot!!
I'll check it
Regards
I have a related question, about the Funktionblock GetState.
(1) Can I use several GetState Funktionblocks in one pou?
(2) Or must I poll the slaves sequentially, (and use only one GetState Funktionblock)?
(Or in other words: Does the Cia405 Funktionblock GetState support serialisation / multi-thread.)
Regards,
Edwin.
(1)
e.g.
VAR
CANOM_state_node_4: Cia405.GET_STATE;
CANOM_state_node_5: Cia405.GET_STATE;
CANOM_state_node_6: Cia405.GET_STATE;
END_VAR
CANOM_state_node_4 (NETWORK := 1, ENABLE := CANOM_state_node_4_enable, TIMEOUT := 0, DEVICE := 4);
CANOM_state_node_5 (NETWORK := 1, ENABLE := CANOM_state_node_5_enable, TIMEOUT := 0, DEVICE := 5);
CANOM_state_node_6 (NETWORK := 1, ENABLE := CANOM_state_node_6_enable, TIMEOUT := 0, DEVICE := 6);
(2)
e.g.
VAR
CANOM_state_node_x: Cia405.GET_STATE;
node_id: WORD;
END_VAR
CANOM_state_node_x (NETWORK := 1, ENABLE := CANOM_state_node_x_enable, TIMEOUT := 0, DEVICE := node_id);
if (no_error) then
( next node )
node_id := node_id + 1;
end_if
Hello!
I'm exploring how to monitor CAN open and how to handle if error. I am wondering how do you trriger ENABLE variable CANOM_state_node_4(5,6)_enable for GET_STATE? If ENABLE remains TRUE the status doesn't change.
Code would be helpful.
Regards
Alex
For the ENABLE trigger I made a small state machine (which toggles the ENABLE trigger, so it is not TRUE all the time, and it keeps on getting the state).
Can you share it? Please.
What do you mean with
keep getting the state. Is this the correct state, or the old previous state?I only have experience with Node Guarding where the state of the nodes works correctly.
Do your I/O devices also support node guarding?