Jump to content

How to send more then 32 Byts in UniCan ?


Recommended Posts

You're going to have to multiplex them. The easiest way I've found is to increment a pointer with a short timer and trigger different Send blocks tied to different pointer values. This way you don't have to keep track of block transfers on both ends.

Joe T.

I tried. You can't send more then 1 send block - bacause there is only 1 message arrived block at the other plc, and all data should matc.

Itzik

Link to comment
Share on other sites

You can send many messages "at a time". UnuCAN send is not synchronised with scan time. There is a buffer of 16 messages x 16 MI each. In fact, there are two buffers x 16 messages each - for low priority and high priority.

In your case - you can send messages untill the buffer is not full (see relevant SI - it needs to be less than 16!). Every time "Message recewived" bit rise, you will extract all messages expected. This can lead to extract twice the same message, which in this case doesn't seem to me critical.

Link to comment
Share on other sites

Let's say you will define 5 x blocks UniCAN Send. Each blck will have its own struct module, which will close requested data to a vector of 16 MI.

Having in the second unit the bit "message received", you will activate all 5 Struct modules to "open" te data to requested registers. In this logtic, maybe you wil l"open" the same vector more than once. I don't see any problem on that, as the vector comes from communication and it wil not change until the next data received.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

This site uses cookies. By clicking I accept, you agree to their use.