Menu

OPC Item names with colon (:)

Help
2014-08-19
2014-08-21
  • Thomas Hadlich

    Thomas Hadlich - 2014-08-19

    Hello,

    I would like to use the OPC DA Client with an OPC-Server that uses colons(':') in the item-names.
    An item name would be for example: "dp://brd0.seg0.dev15/Inareai0d17".

    Unfortunately this collides with the use of the colon as separator for the ID input (as described in http://fordiac.sourceforge.net/ehelp/html/communication/opc.html in section 'Create OPC Client')

    Any hint on how to work around this?

    Best regards,
    Thomas

     
  • Thomas Hadlich

    Thomas Hadlich - 2014-08-19

    Hi,

    I found the name-parsing in:
    FORTE_1.5.2\src\modules\opc\opccomlayer.cpp(289) (and some other lines) and changed the separator to ';'. - The change works for me.

    Best regards,
    Thomas

     
  • Zoitl Alois

    Zoitl Alois - 2014-08-19

    HI,

    As I'm not using the OPC Client sofar I'm happy with such a change. Is there somewhere a definition what are valid characters of OPC identifiers. Because the seperator should clearly be an invalid character so that we don't run in the same issue again.

    What are other FORTE users thinking about it?

     
  • G. Sfiris

    G. Sfiris - 2014-08-20

    Hello,

    I think that a good more general solution would be to allow users to add quotation marks ("") in CFB's ID inputs. So the following ID inputs would result in the same parameters:

    "192.168.0.4":"61499"
    "192.168.0.4":61499
    192.168.0.4:"61499"
    192.168.0.4:61499

    This solution is more user friendly. So every quotation mark (") just after a colon (:) would lead the interpreter to search for a ": sequence to get the next parameter.

    The other (most common, but less user friendly) solution would be to allow the use of special characters, like:

    \: for colon (:)
    and
    \\ for backslash ()

    I could program any of these solutions myself.

    Cheers,
    Giorgis

     

    Last edit: G. Sfiris 2014-08-20
    • Zoitl Alois

      Zoitl Alois - 2014-08-20

      Hi Giorgis,

      quotation marks are not good symbols as these have special meanings for IEC 61131-3 WSTRING Literals which are used for these parameters. In order to use quotations marks you need to escape them with $ signs. Which for me seams not quite user friendly.

       
      • G. Sfiris

        G. Sfiris - 2014-08-20

        Then we could use another symbol in the same manner, parentheses () or curly braces {}. The above example would be:

        {192.168.0.4}:{61499}
        {192.168.0.4}:61499
        192.168.0.4:{61499}
        192.168.0.4:61499

        Of course it's a bit strange to have braces outside curly braces, as:

        fbdk.ip[{192.168.0.4}:{61499}]

        But anyway if we need a general solution, I think we should decide either to group a parameter's characters by parentheses, braces, etc. or use the special character input \: and \\.

        Cheers

         

        Last edit: G. Sfiris 2014-08-20
        • Zoitl Alois

          Zoitl Alois - 2014-08-20

          The idea of the parameters for the different layers was to provide a place to specify parameters in a way typical for the specific network protocol. For example in most IP network based protocols and tools addresses are specified as "ip:port". And I expect that most users want to use the specification method typical for their network.

          Therefore I would not impose general rules for the parameters specification on top. Espcially as you never know what special characters the next protocol may need.

           
  • G. Sfiris

    G. Sfiris - 2014-08-20

    Hello,

    Do you mean that the rules for the parameters inside the braces [] are protocol specific?

    So colon doesn't have to be the separator for all protocols' parameters?

     
  • Zoitl Alois

    Zoitl Alois - 2014-08-20

    yes this was the idea. and currently all layers have an own paramter parsing algorithm.

     
  • G. Sfiris

    G. Sfiris - 2014-08-21

    O.K. Thank you for clearing this up.

     
  • Thomas Hadlich

    Thomas Hadlich - 2014-08-21

    Way back (around 2001) we did some research on this topic.

    We found OPC Servers were using a wide range of different characters in item names (i remember for sure dot(.), backslash(), slash(/), percent(%)) - I can not remember all characters, but i believe parenthesis also were used..
    I remember that the paragraph sign (§) seemed a good choice for such a separator. :)

    I like the idea with the quotation marks. - The separator then would be 3 characters (":"). - From point of view of 1499 the IDs are string-literals anyway, they are just passed to the OPC communication.