V6, communicator ignores bound channel of integer data type

Forum Home Forums Uncategorized Issues V6, communicator ignores bound channel of integer data type

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #11411
    zzz
    Participant

    When channel type is set to Integer (value = 1), the channel will be ignored by current communicator (compiled from source downloaded on 20221024 from github). After the config upload and restart, in the Communicator/CommLine/Device view’s ASCII register table, no register is bound to any channel, though they all have been set in channel table.

    Setting channel type to Double resolved this issue.
    Device is using Modbus Func02 to read PLC M bits.
    Channels are set like below:

    
      <Cnl>
        <CnlNum>6601</CnlNum>
        <Active>true</Active>
        <Name>RUN/D16</Name>
        <DataTypeID>0</DataTypeID>  <-- used to be 1/Integer
        <DataLen xsi:nil="true" />
        <CnlTypeID>1</CnlTypeID>
        <ObjNum>66</ObjNum>
        <DeviceNum>2</DeviceNum>
        <TagNum xsi:nil="true" />
        <TagCode>D16_RUN</TagCode>
        <FormulaEnabled>false</FormulaEnabled>
        <FormatID>21</FormatID>
        <QuantityID xsi:nil="true" />
        <UnitID xsi:nil="true" />
        <LimID xsi:nil="true" />
        <ArchiveMask>3</ArchiveMask>
        <EventMask xsi:nil="true" />
      </Cnl>
    
    • This topic was modified 1 year, 5 months ago by zzz.
    • This topic was modified 1 year, 5 months ago by zzz.
    #11428
    Mikhail
    Moderator

    Could you provide screenshots?
    Is it possible to reproduce the issue on the default HelloWorld project?

    Data type of channel and device tag (provided by a driver) must match. It should affect only certain tag. If it corrupt other tags, it may be a bug.

    #11432
    zzz
    Participant

    The issue was debugged on a project downloaded from server before I uploaded mine. I suppose that could be HelloWorld ?

    In the debug process, I setup only 1 bus/device (real modbus tcp device)/channel and tweaked parameters, especially the tagNum and tagCode since they are new stuff, but none got Communicator to recognize the channel number in Device status’s text table. Until I desperately start toggling the data type column. Double works after communicator/server restart.

    In my test project, I setup 77 channels, all as Integer type, none got recognized, until they are all set to Double. and they all are immediately recognized by Communicator. By text table I mean the ascii table in device.txt

    
    Current Data
    +----+----------+------+-------+---------+
    | #  | Code     | Name | Value | Channel |
    +----+----------+------+-------+---------+
    | **************** Runs **************** |
    +----+----------+------+-------+---------+
    | 1  | C6_RUN   | M0   |   Off |    7601 |
    +----+----------+------+-------+---------+
    | 2  | C6_ALMR  | M1   |   Off |    7602 |
    +----+----------+------+-------+---------+
    | 3  | C7_RUN   | M2   |   Off |    7701 |
    +----+----------+------+-------+---------+
    | 4  | C7_ALMR  | M3   |   Off |    7702 |
    +----+----------+------+-------+---------+
    | 5  | C8_RUN   | M4   |   Off |    7801 |
    +----+----------+------+-------+---------+
    | 6  | C8_ALMR  | M5   |   Off |    7802 |
    +----+----------+------+-------+---------+
    | 7  | F6_RUN   | M6   |   Off |    2601 |
    +----+----------+------+-------+---------+
    | 8  | F6_ALMR  | M7   |   Off |    2602 |
    +----+----------+------+-------+---------+
    | 9  | RSV1     |      |    On |         |
    +----+----------+------+-------+---------+
    | 10 | RSV2     |      |   Off |         |
    +----+----------+------+-------+---------+
    | 11 | F7_RUN   | M10  |    On |    2701 |
    +----+----------+------+-------+---------+
    | 12 | F7_ALMR  | M11  |   Off |    2702 |
    +----+----------+------+-------+---------+
    | 13 | F8_RUN   | M12  |    On |    2801 |
    ....
    

    The Channel column used to be all empty. No matter what I do.

    Regards,

    #11445
    Mikhail
    Moderator

    In my test project, I setup 77 channels, all as Integer type, none got recognized, until they are all set to Double. and they all are immediately recognized by Communicator.

    The Modbus driver uses the double type for all its tags. Channel data type must match a tag data type. The behavior looks as expected.
    Currently all existing drivers use the Double type. However, if someone writes a custom driver, he can use integer tags.

    #11446
    zzz
    Participant

    That is kinda confusing, maybe it should be highlighted in the document regarding these data types, “hey users, these data types are determined by driver developers, not you, go read the driver manual.” 🙂

    • This reply was modified 1 year, 5 months ago by zzz.
    #11455
    Mikhail
    Moderator

    maybe it should be highlighted in the document regarding these data types

    You right. Currently, the documentation for v6 is not ready. Nuances of the algorithms should be added to the docs.

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