evanmars

MrPLC Member
  • Content count

    19
  • Joined

  • Last visited

Community Reputation

0 Neutral

About evanmars

  • Rank
    Sparky
  • Birthday 06/28/66

Profile Information

  • Gender Male
  • Location Michigan
  • Country United States
  1. Yeah, remembering back almost 20 years ago (last time I dealt with SLC), that's what I always did.  Totally forgot about the direct referencing instead of using HMI tags. But it turns out the problem was using "unsigned integer" instead of "integer"
  2. Had to set the data type to integer instead of unsigned integer. Apparently, I/O addresses are treated differently than memory addresses when doing bit shift operations. https://rockwellautomation.custhelp.com/app/answers/answer_view/a_id/25521
  3. The type "analog" is not the data type, there is only analog, digital, and string available.  I have the data type set as "unsigned integer" (I also tried "default") I tried it without the .0 first, but when that didn't work, I looked at the data tables for inputs and outputs in RSLogix, and they have the .0, so I tried that. I've attached a couple of images.  One with my attempt at creating a tag called "INPUT_WORD_1" that references all 16 bits of I:1.0 that doesn't want to work, and a tag called "INTERLOCKS_1_THRU_12" that references all 16 bits of N142:30 that does work. The original HMI communicated over RIO, but it was swapped out for a PV+ 7 performance a few years ago.  Everything is over Ethernet now. Just trying to get some I/O status screens.  I create a tag for each I/O point separately, but since there are 448 points, I'd rather not.  
  4. I am trying to make pages on my HMI to show status of the I/O.   Trying to read the entire I/O word, then mask and shift to get the individual bits. Shortcut in Communication Setup is PLC i.e.  In tag manager INPUT_WORD_1, type analog, max 65535, data type unsigned integer, device, ::[PLC]I:1.0 Then for I:1/0 in the connections, expression = {INPUT_WORD_1} & 1 I:1/1 = ({INPUT_WORD_1} & 2) >> 1 I:1/2 = ({INPUT_WORD_1} & 1)  >> 2 etc. But when I run it, I get "Unable to connect to INPUT_WORD_1" (same for rest of the I/O).   I have others like ::[PLC]N142:13 that work fine.
  5. It has been about a millennia since I have worked with a SLC 5/05.   I have a SMC EX600 that I need to communicate with a SLC 5/05 over Ethernet/IP.  I cannot remember how to set this up. I have the .eds How do I set up the I/O addressing for the SMC manifold? Do I need RSNetWorx for Ethernet/IP?
  6. RSLogix 5000   I am getting a 'CMP, Operand 0: Invalid expression.' for this.  It's been a long week, I can't see the problem. (a = (b + 1)) OR (a = 1)
  7. Just started with a new company on a line that uses WonderWare 11.1 with RSLogix.Have never used WonderWare and the development computer is the same as the Runtime computer. Operators need to frequently access the HMI, which makes it difficult to poke around to figure out the software.My main goal at the moment is to figure out how the tags in the PLC are mapped to the HMI. I believe the tag database is SQL.Any pointers on how I might view the tags in WW?
  8. TIA Portal HMI Button Not working

    Is the HMI tag mapped to the correct PLC tag?
  9. Getting Index of particular array element

    What I ended up doing was iterating through the array and when I found a match, I used the iteration number instead of trying to get the element number.  Tomaytoes/Tomahtoes
  10. Getting Index of particular array element

    OK, I guess FIND is my instruction. Now, how do I get it to search past the first element of my array. If I try to find a string that matches the first element, I get a result of 1, but if I try a string anywhere else in the array, it returns 0. FIND 'ABC' in 'ABC','DEF','GHI','JKL' returns 1 FIND 'DEF' returns 0  
  11. Say I have an array of strings and a string I want to find in said array.  Is there a way to return the index of the string that matches the string I am searching for? Array = [DOG],[CAT],[MOUSE],[HORSE],[WOMBAT] Search string = MOUSE Find "MOUSE" in Array = 2
  12. Help -> Contents -> Index -> GSV Assuming RSLOGIX 5000
  13. Look at the GSV (Get System Value) instruction.
  14. How To Clear Boolean Array?

    Thanks. Yeah I figured that out a bit ago and that is what I ultimately went with.
  15. How To Clear Boolean Array?

    That didn't work because RSLogix5000 evidently doesn't use short-circuiting. Although I only wanted to execute the rung when Clr_Index < 32, it still tried to read into My_Bool_Array when Clr_Index = 32, so threw the PLC into a major fault. So I did this instead: BST OTU My_Bool_Array[Clr_Index] NXB XIO My_Bool_Array[Clr_Index] LEQ Clr_Index 30 ADD Clr_Index 1 Clr_Index BND