Jump to content

Recommended Posts

Hello again! 

This time I'm wondering if there is a rule to add the IO modules. Is it necessary to configure the digital I/O before the analogue ones? 

I have this configuration: 

v1040 + EX-RC1 + (#0: IO-AT8) + (#1: IO-ATC8 )+ (#2: IO-ATC8) + (#3: IO-ATC8) + (#4: IO-AO6X)

I need to add an IO-RO16 as module #5 but i have this warning: 

973413928_Screenshot(36).png.3f487d25acb00c8650211d84aa300749.png

I'm not sure what can be wrong. If someone could give me an idea please...

Thanks in advance! 

Link to comment
Share on other sites

  • MVP 2023

I think that you're getting into being over the I/O limit.  When you enter your operands into the Hardware config window, there is a "calculator" at the bottom which shows capacity in use and space left.  For example, a fully utilised ATC8 uses 16% on an RC1.  I didn't run through your setup completely because it would have taken time to do it all.  It can be confusing because you actually have to assign everything for the count to be "checkable".   If you don't assign everything, it will let you add things over the innate limit and you will think it is ok.  This old topic might help:

 

cheers, Aus

Link to comment
Share on other sites

  • MVP 2023

72% doesn't make sense, have you assigned everything?  But I agree, it looks like you are under.  In theory it is (16% x 4) + 12% = 76%

Perhaps you've already got incorrectly assigned I/Os that you've missed somewhere, that the compiler is picking up?

Joe T will likely have more wisdom on this.

cheers, Aus

Link to comment
Share on other sites

1 hour ago, Ausman said:

Perhaps you've already got incorrectly assigned I/Os that you've missed somewhere, that the compiler is picking up?

I'm trying to figure it out. I've been following the examples of communications but I can't see what could be the problem.

Here are my codes, I know it take time to take a look but I would appreciate all the help!

Thanks a lot! 

P796 - RO EX-RC1_Hospital.vlp

P796 - RO PLC for EX-RC1_Hospital.vlp

Link to comment
Share on other sites

I think the position you put the RO16 will determine what I/O registers are expected in the PLC.

The PLC looks at the modules as if they were directly connected.

In the EX-RC1, if you are mapping the outputs to a different address to the expected the PLC will see this as being incorrect.

The outputs should still work but you will keep getting this error on compile.

See Attached

regards

Denis

 

IO-RO16-IO-RO16L_540802102.pdf

Edited by sgull
Attached file
Link to comment
Share on other sites

6 hours ago, sgull said:

In the EX-RC1, if you are mapping the outputs to a different address to the expected the PLC will see this as being incorrect.

The outputs should still work but you will keep getting this error on compile.

Denis,

Thanks for this information. As RO16 is module #6, the outputs start at O112 in the EX-RC1 and on the PLC I'm mapping to the same addresses.

However, I'm gonna test it on field and see if it still work!

Another thing I just see is my UniCan Send block config on the PLC. I'm not sure if I'm setting the correct parameters. This is what I have:

image.thumb.png.e08b67f58f1324a7b5d4ee77f66f9b0f.png

image.png.b242874310e7feb9229489ef480bb458.pngimage.png.5d5ff01cde3a92c59a892929c74e9ca3.png

I had the Lenght parameter set on 7 and I just changed to 16, haven't tested on field but still have the same hardware warning.

Thanks for all your help!

Link to comment
Share on other sites

  • MVP 2023

Haven't had a chance to look at your program in depth. 

Unican can get very confusing when specifying Vectors involved in any structs.  Visilogic doesn't really help at all with the way it names things, and I have touched on this in the past.  Whenever I construct a more complex series of Structs, I lay it all out in an excel sheet, with it clearly in front of me what goes where.  Any vector in use, I label the entire block of all the MIs involved in a way I can easily identify,  eg MI1000 = VectStr1OUT-0, MI1001 = VectStr1OUT-1, etc. .......and MI1100 = VectStr1IN-0 etc.  I do this even if I'm not using all the 16 MIs, thus keeping the space free for possible future use.  This way you ensure that you never accidentally use an MI that is involved in a vector, because it appears free but is is actually in use in a "hidden" way. 

I also use a time based trigger to activate the unican send.  But you can't make it too small.....I have had issues with wanting to do things too fast, most of the time SB13 is easy and good enough.

cheers, Aus

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...