Menu

Modbus TCP/IP

Help
ximo
2011-09-15
2013-05-30
  • ximo

    ximo - 2011-09-15

    Hi everyone.

    I'm using AdvancedHMI with some AllenBradley PLC with excellent results.
    Now I've a xinje plc that has modbustcpip communication.
    I've a sample program downloaded  from inet but the communication is slow and I don't like it.

    i know that AdvancedHMI has modbustcpip protocol, but I don't have experience with this protocol and don't know how to implement the HMI components.

    I configured the ip an the 502 port. but I don't know  how to use the PLCAdressText, Value and Visibility.
    when i build the program the panel meter component always show invalid address.

    I tried to read a word register with PLCAdressValue = 4x0000 and 4xD0… to read D0 word and some other values but always have the invalid address 

    I have this table in the plc datasheet:

    Coil space: ( Modbus address prefix is “ 0x ” )
    Bit component                    Modbus address                 Modbus address
    address                                    ( decimal K )                          ( hex H )

    M0~M7999                              0~7999                                     0~1F3F
    X0~X1037(octal)                 16384~16927                        4000~421F
    Y0~Y1037(octal)                  18432~18975                        4800~4A1F
    S0~S1023                            20480~21503                        5000~53FF
    M8000~M8511                    24576~25087                        6000~61FF
    T0~T618                               25600~26218                        6400~666A
    C0~C634                              27648~28282                        6C00~6E7A

    Register space: ( Modbus address prefix is “ 4x ” )
    word component                    Modbus address                 Modbus address
    address                                    ( decimal K )                          ( hex H )

    D0~D7999                                  0~7999                                0~1F3F
    TD0~TD618                               12288~12906                     3000~326A
    CD0~CD634                            14336~14970                      3800~3A7A
    D8000~D8511                          16384~16895                     4000~41FF
    FD0~FD5000                            18432~23432                    4800~5B88
    FD8000~FD8511                      26624~27135                   6800~69FF

    the plc is xmp2-32rt you can see this table searching xmp2-32rt operating manual

    Anybody help me to read only one word register? xD

    Thank you so much

     
  • Archie

    Archie - 2011-09-15

    Try some of these addresses to see if they work:

    00001
    30001

    Modbus addresses are all numeric and in decimal, so make sure there are no characters , e.g. "x"

     
  • ximo

    ximo - 2011-09-16

    thank you arj3090.

    I test a lot of numbers, very slow… without results, the plc always give me "invalid address" or "type of exception" 'MfgControl.AdvancedHMI.Drivers.PLCDriverException' en AdvancedHMI.exe or 'System.OverflowException' en AdvancedHMI.exe
    I tried to write a program to evaluate all the modbus addresses but I think I changed the address faster than the program can send and receive data. then the plc lost the connection and I have to reset.

    now I'm doing it manually.
    I've tried 30010 with result!! but I dont know what direction I'm reading. I searched this data but I didnt found it.
    then I've tried to receive this data again but can't be possible. i think that was noise or garbage xD

    I have a concrete question, is necessary to use the plcaddrestext and plcaddresvisibility ? I'm only using plcaddresvalue.

    i think I need more tests to finish, I will keep trying.

    thank you.

     
  • ximo

    ximo - 2011-09-16

    hi again

    i have a crazy number succession.

    address         data
    30010 2304
    30011 2560
    30012 2816
    30013 3072
    30014 3328
    30015 3584
    30016 3840
    30017 4096
    30018 4352
    30019 4608
    30020 4864
    30021 5120
    30022 5376
    30023 5632
    30024 5888
    30025 6144
    30026 6400
    30027 6656
    30028 6912
    30029 7168
    30030 7424
    30031 7680

    and repeating at 40000
    40010 2304
    40011 2560
    40012 2816
    40013 3072
    40014 3328
    40015 3584
    40016 3840
    40017 4096
    40018 4352
    40019 4608

    and

    44010 43264
    44011 43520
    44012 43776
    44013 44032
    44014 44288
    44015 44544
    44016 44800
    44017 45056
    44018 45312
    44019 45568

    anybody knows what I'm reading?

    I need to read a word register, in the plc datasheet says "Register space: ( Modbus address prefix is “ 4x ” ) " and "Coil space: ( Modbus address prefix is “ 0x ” ) "

    and I don't know now what prefix I'm using. is the prefix included in the driver?

    comparing the ethernetipforsclmicro and modbustcpip, modbustcpip is very slow. is this correct or i have something wrong?

    thank you

     

Log in to post a comment.