Announcement

Collapse
No announcement yet.

Keyence sr-750 series barcode reader

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts


  • Keyence sr-750 series barcode reader

    I am using do more and very new to using Ethernet, new as this is first try haha, i am able to use the EIPMSG to my Keyence SR-752 to make it trigger

    Class: 0x69
    Instance: 0x1
    Attribute:
    Service: 0x4D

    This works and looking at the auto ID software terminal screen it shows data that is read, the part i can not figure out is how to retrieve that string into the PLC (using BRX Internal Ethernet port with device created for for SR-752 set to EtherNet/IP Explicit messaging)

    Help!!!!!!!


  • #2
    In your EIPMSG instruction, are you using a Numeric Data Block or a String? The data should show up there. When online to the PLC, if you turn Status ON your Ladder View, you should see the raw data displayed in the instruction. Unless the data is ASCII, you should probably use a Numeric Data Block (e.g. stick it in a byte buffer or maybe D memory somewhere). You can also use a Data View to see the data.

    If you have questions on how to extract the specific values, do you have any documentation on the format of the raw data of the SR-752 specific Class and Instance?
    There are 10 kinds of people in this world, those who know binary, and those who do not.

    Comment



    • #3
      Click image for larger version

Name:	Capture.JPG
Views:	2
Size:	39.2 KB
ID:	111292
      This is my current instruction, I created a data block titled reader with addresses 0-31 (not really sure how to use this data block) Do I send a get istruction now to receive a string. literally all i have is this that starts the trigger
      Attached Files

      Comment



      • #4
        The EIPMSG instruction itself sends the request and gets the response, so the data should be showing up in READER0... (is READER a BYTE or WORD or DWORD block?).

        The input leg to the EIPMSG has a triangle on it, which is a "clocked" symbol, meaning that the instruction will execute whenever the input contact state goes from OFF to ON. So, if you stick an ST4 contact (once a second) as the input contact, it will perform the service 0x4D (which I assume is some kind of READ?) once every second.

        Do you know if the data is binary or ASCII from the barcode reader. Since it's 2D barcode, it may be raw binary, but it may be ASCII? If it's ASCII, it may be easier to read it into a STRING (e.g. SS0). You can then use STR2INT instruction to convert the numeric string to an integer number.

        BTW, the On Success is actually a "Successful Transaction", not just "start_read".
        There are 10 kinds of people in this world, those who know binary, and those who do not.

        Comment



        • #5
          Sorry, I do not have any of the SR-752 user manuals (that would help), but I think I found one online and it shows that your service IS "Preset Start - Starts preset data reading". Hence, your nickname of "start_read" is accurate! Do you have a .PDF that shows basic EtherNet/IP service protocol handshaking? Their website requires people to "register" for those details. :-\
          There are 10 kinds of people in this world, those who know binary, and those who do not.

          Comment



          • #6
            Originally posted by franji1 View Post
            Their website requires people to "register" for those details. :-\
            Yeah! HARRRRRUMPH! to that
            I used to use the 'bugmenot' addon until everyone went to fb/yt/discus... logins


            Oh, you said keyence.--------------------- expect a call/email after you leave their website!

            Comment



            • #7
              So it looks like I need to set specific bits within a address, If I create a data block in bytes how do I set a specific bit within that byte ( If not created in bytes EIPMSG Will not recognize)
              Example:

              Turn on bit 7 within byte READER0
              or
              turn on bit 7 within D0

              Comment



              • #8
                Originally posted by franji1 View Post
                Sorry, I do not have any of the SR-752 user manuals (that would help), but I think I found one online and it shows that your service IS "Preset Start - Starts preset data reading". Hence, your nickname of "start_read" is accurate! Do you have a .PDF that shows basic EtherNet/IP service protocol handshaking? Their website requires people to "register" for those details. :-\
                Click image for larger version

Name:	Outputs.JPG
Views:	1
Size:	47.4 KB
ID:	111446Click image for larger version

Name:	Inputs.JPG
Views:	1
Size:	90.9 KB
ID:	111447

                PDF File is to large and my computer is being a pain, (wont let me print range of pages to pdf)

                Comment



                • #9
                  Originally posted by Lucas.Allen View Post
                  So it looks like I need to set specific bits within a address, If I create a data block in bytes how do I set a specific bit within that byte ( If not created in bytes EIPMSG Will not recognize)
                  Example:

                  Turn on bit 7 within byte READER0
                  or
                  turn on bit 7 within D0
                  Do-more PLCs support casting operator ":". One of the casting operators is to cast to a bit within a numeric type (byte, word, dword) using just the bit number. So, to turn on bit 7 in READER0, do a
                  SET READER0:7
                  (bit 7 is the 8th bit, since bit numbers are 0-based).

                  To turn off Bit 7, to
                  RST READER0:7

                  You can use bit casts as contacts in or OUT coils, anywhere you can reference a bit, you can reference a bit cast of a numeric register.

                  If you have a set of bits in C-memory, and if they are BYTE-aligned (e.g. C8 thru C15 or C16 thru C23, but not C2 thru C9), you could simply cast the C bits as an UNSIGNED BYTE and move them using a MOVE instruction
                  MOVE C8:UB READR0
                  This will move C8 thru C15 bits to bits 0 thru bit 7 of READER0.

                  There is a helpful youtube video on Do-more casting:


                  There are 10 kinds of people in this world, those who know binary, and those who do not.

                  Comment



                  • #10
                    Originally posted by Lucas.Allen View Post
                    If not created in bytes EIPMSG Will not recognize)
                    I'm not sure I understand this. EIPMSG should not limit you to BYTE types.

                    Originally posted by Lucas.Allen View Post
                    Turn on bit 7 within byte READER0
                    or
                    turn on bit 7 within D0
                    Just append :7...READER0:7 or D0:7...and set through whatever instruction you want.

                    Comment

                    Working...
                    X