Signal Relative ID to Fixed ID ?

Forum Home Forums New Ideas Signal Relative ID to Fixed ID ?

Tagged: ,

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #9163
    zzz
    Participant

    Recently we made some major change to the PLC comm buffer. Just like in other specifications, several reserved registers in header come in to use in this revision.
    I found that the Input Channel signal# change become massive due to the signal number change. This is very troublesome with large register-block size.
    e.g.
    to change from

    
    |addr |type |sig  |name | 
    |0    |int  |1    |     |
    |1    |int  |2    |     |
    |2    |int  |3    |     |
    |4    |int  |4    |     |
    |5    |int  |5    |     |
    |6    |int  |7    |     |
    |7    |int  |8    |     |
    |8    |int  |9    |     |
    |9    |int  |10   |     |
    |10-11|float|11   |     |
    ...
    |100  |
    

    to

    
    |addr |type   |sig  |
    |0-1  |uint32 |1    |
    |2-3  |float  |2    |
    |4    |int  |3    |
    |5    |int  |4    |
    |6    |int  |5    |
    |7    |int  |6    |
    |8    |int  |7    |
    |9    |int  |8    |
    |10-11|int  |9    | <----- *all* signals after this line needs to offset by 2
    ..5
    |100  |
    

    all channnels’ signal number needs to be offset by 2, which is 15*15=225 entries need to be modified in my case. plus 15*2 = 30 entries addition.

    But if signal use fixed numbering, that will only require 30 additions, no modification to existing entries.

    #9166
    manjey73
    Participant

    Yes, this is a drawback of the Modbus driver and many others related to the tag generation code from the driver. I had to get away from this and look for a workaround by adding a mechanism to the code of my drivers to save the signal numbers that I want to see. As a result, I can disable or add variables without touching the signal numbering. For freely programmable devices, this is the first necessity. Yes, in other things, and for configurable ones, too.

    It is hoped that the developer will listen to this problem and make some changes, at least in the Modbus driver.

    #9167
    manjey73
    Participant

    The signals and have a fixed numbering, but based on the indexes of the list of variables. And since we can change the lists, then what happens is what happens 🙂

    • This reply was modified 2 years, 9 months ago by manjey73.
    #9181
    Mikhail
    Moderator

    Rapid SCADA will support string tag codes instead of numbers in version 6. It will allow to avoid such problem.

    #9185
    zzz
    Participant

    I was wondering why not use starting adress as the signal id in the first place (they are numeric, sequential, not continuous but unique, ).

    While the V6 solution sounds good, I just wonder if the tags can be sorted easily by register start address, either automatially/by default/manually ?

    Having a labeled register block layout overview is a realy nice thing. I think the template editor in V5 seems close to that, even if not perfect.

    #9192
    Mikhail
    Moderator

    I was wondering why not use starting adress as the signal id

    Talking about Modbus, starting address can be the same for Coils and Holding Registers, for example.

    I think, we will improve Modbus Template Editor to simplify manual operations.

    #9196
    zzz
    Participant

    Talking about Modbus, starting address can be the same for Coils and Holding Registers, for example.

    Indeed. In that case, maybe adding group id, e.g. 1.1, 1.101 and 2.1, 2.101 to seperate address from different groups is a solution.

    I think, we will improve Modbus Template Editor to simplify manual operations.

    The best thing I like this Template Editor instead of editing xml directly is the auto addressing, that’s like a address calculator. You just keep clicking [+] tens of times, which is kind of tedious, but I accept the trade-off :-D.

    #9197
    zzz
    Participant

    The thing I found most tedious is changing data types. It feels like the editor is fighting with you, since it doesn’t remember your last register datatype, nor is there any way to change them in batch.
    If the region is full of float data, one has to keep correcting the data type all along the way. Other than that, for me, it worked just fine.

    #9200
    Mikhail
    Moderator

    Do you mean changing datatype of each element in a group?

    #9281
    zzz
    Participant

    Hi Mik,

    No, I tried to avoid changing that, I mean when adding many new registers. The defaul is always the same.

    #9287
    Mikhail
    Moderator

    Hi,
    Thanks for the idea. Added to the wishes list.

Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.