Community
    • Login

    Function List for Simatic

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    functionsfunctions listcustomize
    20 Posts 2 Posters 12.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Burak TavukcuogluB
      Burak Tavukcuoglu
      last edited by

      Of course! This is how a sub-function looks like with M17 marking the end of the function.

      %_N_WAITE_CH2_FREE_SPF
      ;$PATH=/_N_SPF_DIR
      HOLDON:
      G04 F0.1
      STOPRE
      IF Channel2 <> 0 GOTOB HOLDON
      STOPRE
      MSG()
      M17

      1 Reply Last reply Reply Quote 0
      • MAPJe71M
        MAPJe71
        last edited by

        Thanks!

        In your example the function name (%_N_WAITE_CH2_FREE_SPF) does not end with a colon but in your parser you end the main-expression with a colon (^([%_N_]*[_A-Za-z])\w*:).
        Which one is correct?
        Do you have a link to a Siemens document that describes the syntax of the numeric control language?

        1 Reply Last reply Reply Quote 0
        • Burak TavukcuogluB
          Burak Tavukcuoglu
          last edited by

          The code did not work. http://imgur.com/rQLGnfL Here you can see that userDefinedLangName is the same name as the entry in the language menu.
          Without the colon is the correct version.

          1 Reply Last reply Reply Quote 0
          • MAPJe71M
            MAPJe71
            last edited by

            Here’s an update …

                <association id="NC_function" userDefinedLangName="NC 840dsl" />
                <association id="NC_function" ext=".arc" />
            
                <parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)">
                    <function mainExpr="^%_N_\K[A-Za-z_]\w*" />
                </parser>
            
            1 Reply Last reply Reply Quote 0
            • Burak TavukcuogluB
              Burak Tavukcuoglu
              last edited by

              First of all, thanks a lot for your help and time MAPJe71
              I found this document for the syntax. https://support.industry.siemens.com/cs/document/109248664/sinumerik-840d-sl-job-planning?dti=0&pnid=14599&lc=en-WW
              To wrap it up, I wrote down the current state of the function list. It still doesnt work. :(

                          <association id="NC_function" userDefinedLangName="NC 840dsl" />
              						<association id="NC_function" ext=".arc" />
                              <parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)">
                  <function mainExpr="^%_N_\K[A-Za-z_]\w*" />
              			<functionName>
                          <nameExpr expr="\w+"/>
                      </functionName>
                  </function>
              </parser>
              
              1 Reply Last reply Reply Quote 0
              • MAPJe71M
                MAPJe71
                last edited by

                You didn’t correctly copy-paste the parser-node I posted.
                Remove the …

                            <functionName>
                            <nameExpr expr="\w+"/>
                        </functionName>
                    </function>
                

                part or re-copy/paste so it looks like this …

                    <parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)">
                        <function mainExpr="^%_N_\K[A-Za-z_]\w*" />
                    </parser>
                

                Also check whether or not you edited the right functionList.xml file as there might be more than one on your system:

                1. %ProgramFiles%\Notepad++\functionList.xml;
                2. %ProgramFiles(x86)%\Notepad++\functionList.xml;
                3. %AppData%\Notepad++\functionList.xml

                Furthermore, make sure to restart Notepad++ after you edited and saved the XML-file.

                1 Reply Last reply Reply Quote 0
                • Burak TavukcuogluB
                  Burak Tavukcuoglu
                  last edited by Burak Tavukcuoglu

                  It did work!!
                  Thank you!!
                  Apperantly I modified the false file. Namely, %APPDATA%\notepad++\functionList.xml as in https://notepad-plus-plus.org/features/function-list.html, and not as you mentioned above: %ProgramFiles(x86)%\Notepad++\functionList.xml.
                  Thanks MAPJe71, you really helped me a lot.
                  My best regards!

                  1 Reply Last reply Reply Quote 0
                  • Burak TavukcuogluB
                    Burak Tavukcuoglu
                    last edited by

                    Hi!
                    I recently discovered a bug in the function list feature. (or something I overlooked)
                    The function list works great. But when I open certain files, functions are not being listed. However, when I copy the content of my code to a new window, functions are listed just as normal.
                    This does not happen with every file. With file names such as: SPF_DIR.arc and MPF_DIR.arc, it happens all the time. Are those file names not permitted in Notepad++?
                    Thanks!

                    1 Reply Last reply Reply Quote 0
                    • MAPJe71M
                      MAPJe71
                      last edited by

                      AFAIK there’s no restriction on file names other than the standard Windows restrictions.
                      Could you post the files and the Notepad++ Debug Info (you can find it in the ? menu) so I can try to reproduce the problem?

                      1 Reply Last reply Reply Quote 0
                      • Burak TavukcuogluB
                        Burak Tavukcuoglu
                        last edited by

                        https://www.dropbox.com/sh/53wxnnxioxmcj8p/AADzd9wMDWoCVTgVrZJdqqL-a?dl=0
                        In the shared folder, there is a file which I am trying to display the functions of it and the respective functionlist and the user defined language.
                        Due to the copywrite agreements, I can not post the complete code that is why I trimmed the code to the function names. I tried to view the functions, it didnt work.
                        Many thanks!

                        1 Reply Last reply Reply Quote 0
                        • MAPJe71M
                          MAPJe71
                          last edited by

                          Due to the copyright agreements, I can not post the complete code …

                          I understand and so far the trimmed down code helps, as it does not show any functions on my system either.
                          I’ll have a look.

                          1 Reply Last reply Reply Quote 0
                          • Burak TavukcuogluB
                            Burak Tavukcuoglu
                            last edited by

                            Thank you for correcting me. I probably typed it really quick. :)
                            I can confirm that the regex file you provided, really did the trick and the function view normally works. It fails to show the functions whenever I try to open a new file
                            Once again thank you so much for your help!

                            1 Reply Last reply Reply Quote 0
                            • MAPJe71M
                              MAPJe71
                              last edited by MAPJe71

                              You’re welcome!

                              1. Incomplete parser;
                              2. Known bug with comment following function header.

                              ad.1. Adapt parser to:

                              <parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)">
                              	<function mainExpr="(?m)^%_N_\K[A-Za-z_]\w*" />
                              </parser>
                              

                              ad.2. There have to be at least two characters between the function header and the comment.
                              e.g. a line-break and a space

                              %_N_CH1_BASIC_POS_SPF
                               ;$PATH=/_N_SPF_DIR
                              ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
                              

                              or two line-breaks

                              %_N_CH1_BASIC_POS_SPF
                              
                              ;$PATH=/_N_SPF_DIR
                              ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
                              

                              or two spaces

                              %_N_CH1_BASIC_POS_SPF  ;$PATH=/_N_SPF_DIR
                              ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
                              

                              or a colon and a line-break

                              %_N_CH1_BASIC_POS_SPF:
                              ;$PATH=/_N_SPF_DIR
                              ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
                              

                              etc.

                              1 Reply Last reply Reply Quote 0
                              • Burak TavukcuogluB
                                Burak Tavukcuoglu
                                last edited by

                                It is weird. Because it doesnt happen with other files even though the comment line is right below the function tag.
                                Thanks for your time and help!

                                1 Reply Last reply Reply Quote 0
                                • MAPJe71M
                                  MAPJe71
                                  last edited by

                                  Had another look …
                                  ad.2. or make sure your line-breaks consist of a carriage-return and a line-feed (i.e. two characters).

                                  Your SPF_DIR - Kopie.arc uses line-feeds for line-breaks i.e. only one character between tag and comment.

                                  1 Reply Last reply Reply Quote 0
                                  • Burak TavukcuogluB
                                    Burak Tavukcuoglu
                                    last edited by

                                    Is it possible to add an exception into comments section?
                                    For example: everything is a comment except when $PATH comes right after ‘;’.

                                    1 Reply Last reply Reply Quote 0
                                    • MAPJe71M
                                      MAPJe71
                                      last edited by

                                      Yes that can work, in your case!
                                      Change commentExpr to "(?m-s:;(?!\$PATH).*?$)".

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post
                                      The Community of users of the Notepad++ text editor.
                                      Powered by NodeBB | Contributors