
adccommunitymod (AutomationDirect) asked a question.
Created Date: September 28,2018
Created By: llama
**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****
I am trying to program a C-More to enter many different sets of data into a BRX PLC. The registers in the PLC are all in even spaced blocks. For instance, set 1 would be D10-D19. Set 2 would be D20-D29. There is a value at the top of the screen that can be changed to show which set of data I am looking to view or change. I will have up to 100 different sets of data. I am having trouble finding a way to do this in the C-More. I have seen this done on Mitsubishi HMI's with an offset value that can be changed and all displays on the screen reference that offset value. Is there a similar way to do this on the C-More or another way to accomplish this?
Created Date: September 28,2018
Created by: llama
I am trying to program a C-More to enter many different sets of data into a BRX PLC. The registers in the PLC are all in even spaced blocks. For instance, set 1 would be D10-D19. Set 2 would be D20-D29. There is a value at the top of the screen that can be changed to show which set of data I am looking to view or change. I will have up to 100 different sets of data.
I am having trouble finding a way to do this in the C-More.
I have seen this done on Mitsubishi HMI's with an offset value that can be changed and all displays on the screen reference that offset value.
Is there a similar way to do this on the C-More or another way to accomplish this?
Created Date: September 28,2018
Created by: franji1
If the panel does not support that natively, the Do-more protocol does.
Does C-more's basic Do-more driver or Symbolic Do-more driver support Do-more arrays, e.g. D , or even better, arrays with offsets, D D … D ?
You would just need to set V100 equal to your D address ID (e.g. 10 decimal or 20 decimal)
Created Date: September 28,2018
Created by: Do-more PE
C-more does not support array indexing unfortunately.
Created Date: September 28,2018
Created by: llama
Franji - I did already try array indexing and I could not get it to work, apparently because it is not supported as Do-More PE stated.
I am really hoping someone on here can get me pointed in the right direction to simplify my project.
If I have to create 100 screens to do what I want, that would probably push me towards using a different panel.
Created Date: September 28,2018
Created by: bcarlton
Establish a common area in thee Do-more. Let the C-more read/write to that area. Also let the C-more write to an offset index. On completing entering a group of data provide a 'done ' or 'Enter ' button. In thee Do-more use the 'done ' action to move the contents of the common area into the data table offset location. You can decide if the operator triggers the next set or let it be automatic after writing the first set. There would only be one screen. It is only showing a common area. The internals of the Do-more program handles moving the data.
Yo may also wish to investigate the use of recipes in the C-more.
Created Date: October 01,2018
Created by: llama
Establish a common area in thee Do-more. Let the C-more read/write to that area. Also let the C-more write to an offset index. On completing entering a group of data provide a 'done ' or 'Enter ' button. In thee Do-more use the 'done ' action to move the contents of the common area into the data table offset location. You can decide if the operator triggers the next set or let it be automatic after writing the first set. There would only be one screen. It is only showing a common area. The internals of the Do-more program handles moving the data.
Yo may also wish to investigate the use of recipes in the C-more.
Thanks Bernie. Your reply got me thinking.
I like the idea of a common area and having the C-More write to that. I was already thinking on these lines, but I wasn't sure how to move the data around.
Instead of a Done button, what about using a Delta Contact to monitor changes in the data and move the block of data whenever a value in the C-More is changed? I am not too familiar with the Delta contact, but from what I have read this appears like it could be an option. I could move the block from its indexed location to the common area at the top of the scan (I could even limit this to only when the index changes using another Delta) and move it back only after one of the values has changed.
Created Date: October 01,2018
Created by: kewakl
Look for a PAC/CMore proof-of-concept project here .
Granted, it is for a different platform, but the concepts are translatable.
I refer to the 'common-area ' as ABSTRACTED.
I refer to pending changes as DIRTY.
Created Date: October 01,2018
Created by: commander
I just set up screens similar to this. I used the screen number to decide which calculations to run, moving the correct data to the screen that has the same memory addresses. Keep the screen numbers in order, and do a math function to calculate the offset. So if I needed Set 1 to display D10 to D19, I would move them to a common memory location, say D0-D9 and program those to each hmi screen. Then copy each screen until I had enough.
Created Date: October 01,2018
Created by: kewakl
I use the same screen, just populate with the abstracted (common area) data.
only one screen to build. No faffing about with screen numbers for the maths
Created Date: October 02,2018
Created by: llama
The attached is what I came up with. This takes the step # from the HMI (V2) and multiplies by 10 to create an offset (V3). This offset is used to move the data from that step (D10-19, D20-29, etc.) . to the common area D1010-1019.
The data in the common area is moved back to the step location any time a new value is entered into the HMI. If my assumptions about the Delta contact are correct I think this should work.
Anybody see any flaws in this plan? I don't have the hardware up and running yet to test.