panic mode

MrPLC Admin
  • Content count

  • Joined

  • Last visited

Community Reputation

56 Excellent

About panic mode

  • Rank
    Mitsubishi Moderator
  • Birthday 12/15/69

Contact Methods

  • Website URL
  • ICQ 0

Profile Information

  • Gender Male
  • Location Mississauga, ON
  • Country Canada
  • Interests many...

Recent Profile Visitors

7858 profile views
  1. Distance in milimeter from Encoder pulses

    first determine correct ratio or scale factor:     reset position     move whatever your encoder is tracking certain distance (257mm for example)     look at the encoder value (5103514 counts for example).     then divide the two values to get travel in pulses per mm (19858.03112840)   now that you have scale factor, divide whatever encoder pulses are by that factor and you will get traveled distance in millimeters.    
  2. RsLogix Lookup Table programming Help

    lookup table just translates one value (input) to another value (output). if relationship is simple, one can use scale or similar transform.    If input is one of following cases 1,2,3,4 and output is 10,20,30,40 one can write Y=X*10 so only one operation is needed.   If input is one of following cases 5,6,7,8 and output is 10,20,30,40 one can write Y=(X-4)*10 so only two operations are needed.   If relationship is more complicated, math gets more complicated. In some cases it may be simpler to just create a list of all cases (table) and for each case assign specific value. If input is one of following cases 5,6,7,8 and output is 10,29,32,40 one can write EQU N7:0 5    MOV 10 N7:1 EQU N7:0 6    MOV 29 N7:1 EQU N7:0 7    MOV 32 N7:1 EQU N7:0 8    MOV 40 N7:1   That would be example of hardcoded lookup table. For each point there are two operations. if table is long, many operations would be needed. Once can also use more elegant way where data is stored in the data table and retrieved by index... if needed index can be calculated. SUB N7:0 5 N7:2  // N7:2 is recalculated index so input 5,6,7,8 is translated to 0,1,2,3 MOV N17[N7:2] N7:1  // then we can use N7:2 as an index to read values from table N17 that contains list of output values
  3. Addressing Bit Inside an INT

    why look for 'special' function and not use generic ones that are literally available on every platform? OR instruction and suitable mask does the job.  
  4. Bit to word

    did not touch Mitsubshi in a while but something like this sure used to work: MOV D0 K4M0 MOV K4M0 D0
  5. you cannot tell computers to do something for you if: a) you don't speak their language or b) they don't speak your language   first option is used by programmers, second by users.
  6. if he really solved it , result would be 4 bytes. he only got two. but if that works, he showed you the way and you need to finish it.... Byte4 = Position AND 0x000000FF Byte5 = (Position AND 0x0000FF00) SHR 8 Byte6 = (Position AND 0x00FF0000) SHR 16 Byte7= (Position AND 0xFF000000) SHR 24
  7. nope... just need someone who has done PLC programming,. one person is plenty. you should be the one watching over the shoulder.
  8. this situation is no different than any other. looking up used tags/memory locations is done with cross-reference. if you don't have PLC software, you can still open PLC1.pdf and search for inputs (Ctrl+F then type I:). as mentioned, only four inputs are used in PLC program and their addresses are I:0/16 to I:0/19 All four of them are on a PDF page 8 (schematics sheet 7).  
  9. what does the datasheet tell about the format? clearly you have 4-byte value (32-bit value) but what is the exact format , signed or not, REAL or INT,  what is the byte order?       
  10. your HMI is not PanelView600, it is PanelView600Plus (programming software for them is different).
  11. not sure what the big deal is. if production is important to you, you would make darn sure to have all schematics, BOMs, all configurations and applications backed up long before disaster strikes. that is called preparedness and it one of key indicators of competence.  then when problem happens it is not end of the world - if HMI is defective, replace it an load application from your backup.  if you don't have backups at the time of need, well... you get the point. if you want to keep production running, you don't have much choice now, deal with vendor or get someone else to reprogram system that you have... or create completely new one.  using what you got will require some reverse engineering. program is without any documentation but - it is rather simple, with plenty of logic repetitions, which dramatically reduces effort. i would say start with commenting I/O and work from there. for example focus on tags or addresses used most...
  12. CompactLogix function to find the highest DINT ?

    you don't have to, this is just pseudo code. implementation can be in any language. 
  13. CompactLogix function to find the highest DINT ?

    MAX_Index = 0 DINT_MAX = ARR[MAX_Index] FOR n=1 to 12    IF ARR[n]>DINT_MAX THEN          MAX_Index = n          DINT_MAX = ARR[MAX_Index]     ENDIF ENDFOR
  14. Simliar Mitsubishi functions in Allen Bradley

    same thing... it is all in the manual. i have not used PLC in recent years but AB allows screen switching just like (if not simpler than) others. you don't specify AB PLC model but in general, all data in AB is retained. also this is easy to test - deploy empty project, put values in tags or data tables manually (not by program). reboot and check what is not cleared. coil instruction (OTE) will always clear output on powerup (as if rung condition was false during first scan)
  15. PLC coil winding application help me?

    well, you provided nothing. what is the problem exactly? based on level or detail presented, my response is going to be equally specific: study datasheets, do the math, apply controls, tweak them until it works. if you have a working algorithm, follow it exactly.