panic mode

MrPLC Admin
  • Content count

    2377
  • Joined

  • Last visited

Everything posted by panic mode

  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.  
  16. Ladder diagram

    here is slight tweak since most PLCs do not have TT bit (timer timing). Instead of TT,  here we use DN bit (timer done). also a bit of comments are added... good luck anyone
  17. OMRON Ethernet IP as Slave

    Omron and ODVA are first places to check. Google is helpful too: https://marketplace.odva.org/products/518-cj1w-eip21-nj-cs1w-eip21-cj2-cj2b-eip21-cj1w-eip21-cs1w-eip21-ne-cs1w-eip21  
  18. hardware/software prob GX Dev

    you should state your PLC model. i have not touched Mitsubishi in years and don't have software installed any more but... should be no problem: just clear block of memory and use indexed addressing to set one bit on. 
  19. Controlling Cylinder Stroke Length

    how many positions we are talking about? you can have cascaded cylinders and control each individually. then you would have sum/difference of all strokes. or just don't use pneumatics, there are servo actuators for same job. still clean...
  20. Main differences between FX1N and FX0S

    in general, higher the number - higher the features (IOs, communication options etc).for details refer to data sheet. is there a particular feature you have in mind?  
  21. Concat Ascii to readable text

    you cn convert each element individually into a string then concatenate them into one longer string
  22. CJ1W-AD041-V1 - Damaging Channels

    according to article number, CT8-006D has 0-10V input.  i'm thinking that something else is going on.... besides, this used to work.   about resistor and zener - what values did you choose? this should be more than enough to protect input. is the input wired and configured for correct range?   how about wiring? did anything change? transducer is powered by separate source? how exactly? are they referenced to common point?
  23. Finding RETAIN Memory Starting Address

    Hello,   can you please provide some details? what PLC exactly, what address, what version (FW, SW)
  24. Arduino to Compactlogix communications

    https://www.adfweb.com/home/products/EthernetIP_serial.asp?frompg=nav16_1
  25. Analog Scaling Problem

    no... without changing hardware you can double resolution if you configure input to use voltage instead of current (if the sensor can output voltage).  if you need higher resolution, go for  FX2NC-4AD (means selling existing system and buying another)