Menu

Write value on IEC Server using QTester104

2017-05-28
2017-05-28
  • Giuseppe di Bartolo

    Hi Ricardo,
    I found very very useful your QTester application to check RTU system. Now I tried to send command using your application without success. In particular I nedd to send float value to IOA object so I use the command type 50 (C_SE_NC_1) providing following parameter:
    Command Address : 9
    Command value: 150
    ASDU Addr: <empty>
    and when I confirm with the "Send Command" button in the IEC Server the IOA object (nr. 9) dorsn't receive the passed value (150).
    In the log I recevive following lines:</empty>


    21:17:57 R--> 006: 68 04 43 00 00 00
    TESTFRACT
    T<-- TESTFRCON
    21:18:17 T<-- FLOAT COMMAND ADDRESS 9 VAL 500 CA 1 SE 1
    R--> 020: 68 12 a0 02 32 00 32 01 45 00 01 00 09 00 00 06 00 fa 42 00
    CA 1 TYPE 50 CAUSE 5 SQ 0 NUM 1
    NEGATIVE FLOAT COMMAND ADDRESS 9 VAL 125 QL 0 SE 0
    21:18:21 T<-- SUPERVISORY 2a2


    I tried also to use the following IEC Server simulator : https://sourceforge.net/projects/iecserver/
    but nothing I'm not able to send values by QTester104

    Where is my mistake ? :-( :-(
    Thanks in adavanced for your very very appreciated support
    Kind regards
    Beppe

     
    • ricardolo

      ricardolo - 2017-05-28

      Dear Beppe,

      Thanks for your comments about QTester104.
      Please be sure to use the latest (1.21) version of QTester104.
      The slave (IEC Server) maybe is not expecting the command with select-before-operate ("SE 1" in the log of command sent and "SE" 0 in response) , please try to send the command without the SBO box checked in QTester104.
      I've simulated QTester104 with Enilit CMS as a slave (you can request a demo of it at http://www.enilit.lt ). It worked perfeclty, note that the value sent 150 is replicated back to the slave confirmation proving that it is correct. Please try to simulate with this software also.
      I couldn't explain (and repeat) the fact that you have put 150 and QTester sent 500 and the return from the slave was 125. Please be double check select command type 50, command duration 0, no SBO.
      Please check also if the slave is correctly programmed for size of objects (Object address size = 3 bytes, Object address structure: unstructured, etc.).

      See below the successful simulation:

      Without SBO:
      17:08:04 T<-- FLOAT COMMAND ADDRESS 9 VAL 150 CA 1 SE 0
               R--> 020: 68 12 30 00 1e 00 32 01 07 02 01 00 09 00 00 00 00 16 43 00 
                    CA 1 TYPE 50 CAUSE 7 SQ 0 NUM 1
                    ACTIVATION CONFIRMATION POSITIVE FLOAT COMMAND ADDRESS 9 VAL 150 QL 0 SE 0
                    COMMAND ACT CONF INDICATION
                <-- BDTR: COMMAND ACCEPTED BY IEC104 SLAVE
               R--> 020: 68 12 32 00 1e 00 32 01 0a 02 01 00 09 00 00 00 00 16 43 00 
                    CA 1 TYPE 50 CAUSE 10 SQ 0 NUM 1
                    ACTIVATION TERMINATION POSITIVE FLOAT COMMAND ADDRESS 9 VAL 150 QL 0 SE 0
                    COMMAND ACT TERM INDICATION
      
      With SBO:
      17:08:49 T<-- FLOAT COMMAND ADDRESS 9 VAL 150 CA 1 SE 1
               R--> 020: 68 12 34 00 20 00 32 01 07 02 01 00 09 00 00 00 00 16 43 80 
                    CA 1 TYPE 50 CAUSE 7 SQ 0 NUM 1
                    ACTIVATION CONFIRMATION POSITIVE FLOAT COMMAND ADDRESS 9 VAL 150 QL 0 SE 1
                    COMMAND ACT CONF INDICATION
               T<-- FLOAT COMMAND ADDRESS 9 VAL 150 CA 1 SE 0
               R--> 020: 68 12 36 00 22 00 32 01 07 02 01 00 09 00 00 00 00 16 43 00 
                    CA 1 TYPE 50 CAUSE 7 SQ 0 NUM 1
                    ACTIVATION CONFIRMATION POSITIVE FLOAT COMMAND ADDRESS 9 VAL 150 QL 0 SE 0
                    COMMAND ACT CONF INDICATION
                <-- BDTR: COMMAND ACCEPTED BY IEC104 SLAVE
               R--> 020: 68 12 38 00 22 00 32 01 0a 02 01 00 09 00 00 00 00 16 43 00 
                    CA 1 TYPE 50 CAUSE 10 SQ 0 NUM 1
                    ACTIVATION TERMINATION POSITIVE FLOAT COMMAND ADDRESS 9 VAL 150 QL 0 SE 0
                    COMMAND ACT TERM INDICATION
      

      Best regards.
      Ricardo

       
  • Giuseppe di Bartolo

    Hi Ricardo,
    thanks for your reply. Was a very pleasure.
    I asking to dowload the suggested Enilit simulator. In the meanwhile I try your suggestion so using the IEC-TestServer (https://sourceforge.net/projects/iecserver/) cleaning some configuration (the previous log was not correct ... sorry) now I receive this messages.

    Command Address : 9
    Command value: 150
    ASDU Addr: <empty>
    Command Type: 50 - C_SE_NC_1</empty>


    Without SBO:

    12:07:55 T<-- FLOAT COMMAND ADDRESS 9 VAL 150 CA 1 SE 0
    R--> 020: 68 12 12 00 14 00 32 01 45 00 01 00 09 00 00 ea ff 15 43 00
    CA 1 TYPE 50 CAUSE 5 SQ 0 NUM 1
    NEGATIVE FLOAT COMMAND ADDRESS 9 VAL 150 QL 0 SE 0
    12:07:59 T<-- SUPERVISORY 14


    With SBO:

    12:08:04 T<-- FLOAT COMMAND ADDRESS 9 VAL 150 CA 1 SE 1
    R--> 020: 68 12 14 00 16 00 32 01 45 00 01 00 09 00 00 ea ff 15 43 00
    CA 1 TYPE 50 CAUSE 5 SQ 0 NUM 1
    NEGATIVE FLOAT COMMAND ADDRESS 9 VAL 150 QL 0 SE 0
    12:08:06 R--> 006: 68 04 01 00 16 00
    SUPERVISORY
    12:08:08 T<-- SUPERVISORY 16


    Is it possible the this simulator doesn't accept writing/command operation ? beacuse for each command I receive always NEGATIVE message.
    This IEC-Server is very simple and intuitive to install and configure. Do you already see and use this software ?
    Thanks again dear Ricardo
    hace a nice day
    Beppe

     
    • ricardolo

      ricardolo - 2017-05-29

      Dear Beppe
      Ahhh I've found the problem: IEC Server expects the link address from master to be 0 (zero). So just put 0 in the Local Link Address of QTester104, then things will start working.
      I think also there is some problem with precision of float values in IEC Server as it is not returning exact values it receives for float commands type 50.
      Hope you can make it work now!
      Regards

       
  • Giuseppe di Bartolo

    Dear Ricardo
    no nothing. I follow your suggestion inserting zero (0) in the Local Link Address but now I receive the log "command rejected by the IEC104 Slave"
    was frustrating :(
    Do you have 5 minutes for me for a teamviewer connection so I oculd show the issue ?
    no problem if you are not available
    Thanks in advanced
    Beppe

     
  • Giuseppe di Bartolo

    YEAHHHHHHH !!!
    Found the mistake ! In the IEC Server I used the incorrect type now Using the command type ID I'm able to write value. Sorry if I trouble you but I'm starting now to discover this world
    Thanks thanks thanks for your support
    Nice day
    Beppe

     
    • ricardolo

      ricardolo - 2017-05-29

      Great! See screenshot of working config.
      I still think there is some problem with float values in IEC Server.
      If I send value 500 it gets 125, if I send 999 it gets 994.993!

       
  • Giuseppe di Bartolo

    Yes I tried different write and I agree with you in some cases values are divided by for in other cases there is a strange rounding but now I could test in a true RTU testing. I'll update you during my work if you have pleasure !
    Thanks Ricardo for your help
    Ciao !
    Beppe

     
    • ricardolo

      ricardolo - 2017-05-30

      Ok Beppe, please keeep me informed of the results.
      If you need any help feel free to ask for.
      Maybe you should file a bug report in the IEC Server project.
      Regards,


       

Log in to post a comment.