panic mode

MrPLC Admin
  • Content count

    2954
  • Joined

  • Last visited

Everything posted by panic mode

  1. Get signal from PLC to C#.Net

    it's been a while since i used Omron and FINS. maybe there is something newer too but did you try Google: https://www.google.com/search?hl=en&as_q=c%23+omron
  2. serial input string

    the masking operation need to use AND, not XOR... XOR with 0xFF would change 'G' (value 0x47) to value 0xB8 which is not what you want. in fact one may probably want this value to be a non-zero since zero may be seen as end of string. so space character would likely be safe choice... (setting that would need an OR instruction)
  3. M Bits in GXWorks 2 with SFC

    "it is simple" does not describe it... why don't you post your code and explain your test method or how to reproduce it? what is connected to X0 and X1? are you sure that logic is scanned? are you sure that M100 is not used anywhere else?  did you try some other bit instead of M100 to make sure it is unused?
  4. Average value

    That is a great idea... And so simple. To
  5. Adept Board Swap Error - No robot connected to system

    i have never uses that robot but based on quick internet search it seem to be a small robot arm (scara). btw. AWC board is not just an Etherent card... it is an entire motherboard (controller) with a lot of functionality. Did you follow the instructions in the manual on replacement? flash card is substitute for a HDD and contains OS etc. but key system settings (robot serial number, licenses etc.) are stored in NVRAM. when AWC is replaced, all settings need to be transferred, that includes flash card, NVRAM, address configuration... not sure what the "protection error" message is but may as well be complaint about missing license.   Adept MV Controller.pdf
  6. Booleans getting "stuck" on?

    you can have bunch of HMI buttons, each setting different bit in some memory area. at the end of PLC scan you can let PLC reset the entire area. for the rest of your PLC code, each of the bits will be seen as one shot. that will work rather nicely for plenty of cases and it is very efficient (no timers, very simple logic, no way to stay stuck etc.). if for some reason write message was missed, user would see no response and simply repeat pressing the same button.  but while simple, this does not work in all cases. an example is where you want to use button to jog axis (and releasing button is suppose to stop the jog). in that case one can resort to some alternative to make it robust. one simple way to get around this is to have HMI cyclically write entire block of memory. this way even if one message is missed and thus desired change is not seen by PLC, the very next message will overwrite the entire block and correct the situation. this is pretty much of how fieldbus data transfer works so all received signals seem to be continuous and instantaneous. this is also quick to implement when one is making custom HMI (a PC application using own driver or implementing just two functions of some SDK - read one memory block and write another...). but this is not how most HMIs work since it is limiting (all write requests need to be in one block). but typical controller may have many different memory areas (timer, counters, inputs, outputs, memory bits, data registers, retentive memory locations etc) they would normally send commands as individual writes to each individual location. so number, size and type of write messages would always differ. therefore one may dig into the bag of tricks and do something fancy depending on particular platform capabilities. and as you have already stated - if something is really critical, it should be handled as such and use more reliable solution. for example robots are making use of enabling switch (a safety device) allowing user to stop any motion command even if jog button was to fail. 
  7. Unknown PLC

     ACE3600 ?
  8. Average value

    maybe... did you check the instruction list? and you should always post your code and expectations. (resolution, time span, accuracy...)   if i read this right you have a problem due summation since average is computed by: AVG(n) = (X1+X2+...Xn)/n it appears that you are attempting to store top side of the fraction into one variable and of course this will overflow pretty soon. solution to not do that... note that the very next average will be AVG(n+1) = (X1+X2+...Xn+1)/(n+1) but this can also be written as this (isolate last term) AVG(n+1) = (X1+X2+...Xn)/(n+1) + Xn+1/(n+1) or AVG(n+1) = (AVG(n)*n + Xn+1)/(n+1) but that will overflow the same way as before due multiplication AVG(n)*n. however this can be rewritten as AVG(n+1) = AVG(n)*n/(n+1) + Xn+1/(n+1) where AVG(n) is previous average, Xn+1 is the latest sample, and "n+1" is the latest sample count. as long as you compute n/(n+1) before multiplying AVG(n), there should be no problem since n/(n+1) will grow but never exceed 1. ultimately this will settle at some average value since limit of  Xn/n goes to zero as n goes to infinity so adding more samples will just add zeroes and average will stop changing.  this begs question... are you really really sure you need total average over indeterminate and always increasing time interval and not average of several most recent samples? one would normally look at average only over fixed number of samples. that number can be small or large but it should be fixed. if you really want to cover "endless" interval, you need to define what is "endless".  
  9. Analog Output (0 - 5V)

    using half of the range is equivalent of loosing one bit. 0-5V is quarter of the range -10..10V so that would be reduction of 2 bits. i don't think that would make much of a difference for most applications. but if it is an issue one could add pair of resistors to form a voltage divider, that would allow use of up to 1/2 of range. still not worth the trouble in my opinion. NX-DA2603 : each channel has 8000 count over full range. (1/4 of that is 2000 counts) NX-DA2605 : each channel has 30000 count range (1/4 of that is 7500 counts)    
  10. Analog Output (0 - 5V)

    why can't you use it? you can limit in software value range and last i checked 0-5V fits inside -10..+10V range.  
  11. you will be well served with those but nobody can tell what the future will bring. programming in general is young discipline and evolving fast. 
  12. hmmm... the word clean is taking all fun out of it...   
  13. CP1L autoonline

    that is exactly opposite of what is in linked instructions and suggestions. when checkmark is set, function is disabled. 
  14. PLC Ladder Logic: Smart Window Blind System

    they are quite similar, both have similar instruction set, both require declaring variables to hold some value (cannot enter literals). i prefer look of thin lines of plc fiddle and more intuitive insertion of instructions but plcsim online has better handle on scrolling, instructions are in one group and always visible. https://www.plcfiddle.com/fiddles/0fce9df0-da52-4db5-afbd-770773b77465
  15. Atlas Copco Simmulator

    i think you meant to use word searching instead of finding.
  16. PLC Ladder Logic: Smart Window Blind System

    unlike https://app.plcsimulator.online/ plc fiddle does not work on mobile phone but otherwise it looks very similar in capabilities.
  17. PLC Ladder Logic: Smart Window Blind System

    i like that sim. bitmask operations would be nice addition 
  18. Booleans getting "stuck" on?

    it is scary to think how many things out there are created by someone not understanding process or architecture of system they worked on. 
  19. not long ago i had to do some work using RS5000 running in vmware15.1. worked like a charm. never had any issues. the possible issue could be that your network adapter is on USB. are you sure there is no lose connection? can you try different adapter or even same one but on different USB port?
  20. How to Download Program From memory Cassette

    which memory cassette? what is the part number? what is the PLC? what programming software version you use?
  21. Subtraction with GX Works 3

    exactly, copy values to additional (and unused) memory locations to see what values are before and after subtraction. it should be an eye opener. you can remove this later. also check what other instruction writes to PlsActMemory. testing instructions to see exact behavior (and build experience and confidence) is also important. always do that on memory that is not used anywhere else. that way there is nothing ele that can change the instruction parameters and give you unexpected result. 
  22. Need help: MR-J2S-100B error AL 30

    "Firmware" is set of software loaded into product that is not user changeable. This is done by the "firm" (company) that makes hardware. Unless the firm releases flashing software and image to be loaded onto some product, there is nothing you can do. an example if firmware is PC BIOS. you do not create own BIOS to make the update but you may receive tools and image to upgrade BIOS after some critical bug was fixed - usually something involving security.  VFDs have firmware too and there is no reason for user to change it. same goes for your radio clock, garage door opener, microwave oven, TV or vacuum cleaner.
  23. Need help: MR-J2S-100B error AL 30

    you do not change firmware. that is what manufacturer does. you only parametrize and use existing functionality as is.  there is a software that can assist with this: https://www.mitsubishielectric.com/fa/products/drv/servo/smerit/mr2/index.html  
  24. fx3uc-64mt/d

    exactly... COMx terminals here are the same thing as S/S terminal. btw the second image ("3. Examples of source input wiring") has correct circuit but wrong label next to sensor. it should say PNP sensor instead of NPN.