panic mode

MrPLC Admin
  • Content count

    2954
  • Joined

  • Last visited

Everything posted by panic mode

  1. Need help: MR-J2S-100B error AL 30

    sure parameters are the same but.. is the wiring the same? and is the load the same? and is the motion profile the same? if everything is the same then there is a possibility that drive that complains is damaged (internal regen resistor is toasted) according to manual messages are complaining about regen. that occurs when decelerating and motor is working as a generator, dumping energy back into drive. as a result internal DC bus voltage of the drive is increasing. when it reaches dangerous levels you get warnings and faults.  solution is to move smaller load, move slower, stop gently... or make sure to use proper external braking resistor so that drive can burn off the extra energy. there is an internal breaking resistor but it is small and cannot handle much (regen options wired P-D). using external resistor makes it possible to handle more power (regen option, wire resistor to P-C). see page 19 of linked manual.  
  2. PLC's and MQTTS

    you can get ESP8266 for couple of bucks  if you are looking for something more ... DIN-rail style... check Automation Direct https://www.automationdirect.com/adc/search/search?fctype=adc.falcon.search.SearchFormCtrl&cmd=Search&searchquery=mqtt&categoryId=0&TxnNumber=-1&searchqty=10  
  3. Proyect with a low budget

    selection of components comes after reading all product datasheets and ensuring they are fit for the application.
  4. Ethernet I/P

    it you want to communicate with EtherentIP slave you need EthernetIP master.  
  5. Well... Technically you did not need the AOP from KUKA, you can get this from AB since AOP is actually an AB product.  AddOn Profile is AllenBradley software that allows AB products to use one network interface to exchange both safety and standard data with some other product. Before AOP became available, AB PLCs needed two NICs for that. Obviously this was frustrating a lot of users since other PLC brands allowed safety and standard messages over same network interface for very long time. AB was just slow to catch up. Finding AOP on AB website can be frustrating so KUKA simply made the it available on its downloads page. It is just easier to find on KUKA.com by selecting Services > Downloads   Btw KUKA does provide EDS for their controllers. All description files are made available by installing WorkVisual and by default are placed in  C:\Program Files (x86)\KUKA\WorkVisual 6.0\DeviceDescriptions\ And this is what EDS subfolder looks like        
  6. Conveyor Control

      actually that is something you or our client should define. we do not know how your system is supposed to operate.  btw i do not see any conditioning of the inputs so button press would yield random outcome depending on duration of the press. to make things work the way you want, you need to create one shot logic for each of the buttons. for example consider this part:             IF bttnConveyor1 THEN                 IF NOT in_Sensor1 THEN                 out_Conveyor1:=TRUE;                 ELSE                 out_Conveyor1:=FALSE;                 END_IF             END_IF or just             IF bttnConveyor1 THEN // do something             END_IF consider what happens when "do something" is executed without control. for example replace it with variable increment             IF bttnConveyor1 THEN               myCounter := myCounter + 1; // do something             END_IF this should probably be rewritten into something like this:             IF bttnConveyor1 THEN                 IF NOT bttnConveyor1_was_pressed THEN                     myCounter:=myCounter+1;  // do something                 END_IF             END_IF             bttnConveyor1_was_pressed := bttnConveyor1; the additional static variable ("bttnConveyor1_was_pressed") was simply used to keep record of the past button state and sense the signal edge. in this example rising edge of button press was sensed and used to perform some action ONCE per button press.        
  7. Reading a string value in excel?

    what is "my program"? post the examples. details matter.
  8. TSX PSY1610

    If you have a problem with a PLC, simply contact local vendor. If they do not have someone to assist you, they should tell you who can. As stated, many people here are willing to help, but cannot since that is not product they work with.  Troubleshooting using LED status is very limited. You need to go online with PLC and check CPU status and any messages. If you do not have needed tools, and access, you need to get them or find someone that does. 
  9. G9SP Configurator

    yup and it is done...
  10. FB in a Structure

    Making wishes is fine. Listing them can be useful feedback if people involved come to read such posts. At any rate that is something that is not going to be resolved quickly. It may happen but will take time  On the other hand there are quite few topics where someone is looking for specific instruction or feature. Well duh ... If we could just talk to PLC and tell it what need to be done, there would be no need to learn programming. Until that day, we may have to keep finding solutions around the limits of used platform. Frankly i see no point in some of the things said. Pointers for example may be not available on purpose. Considering what the PLCs are used for and how poor general programming skills of average automation guy are, i am ok with that... How much memory is used internally by some construct like union etc. is also pointless. Short on memory - restructure your code or use bigger CPU. Programmer may not have choice in instruction set or memory size but has choice in what programming construct is used or not. Don't like it, work around it. And you know the saying:  If you cant beat them, join them.    what i like to do is make my own library that manipulates things the way i like. this also allows me to wrap things around and conceal differences when working with different platforms. and it also helps reduce repetition of code.   
  11. Controls Designing

    Correct way is to calculate things using very simple highschool physics. Same is repeated in first year of university. Since it us only using basics it us fair game for anyone... And quick way to weed out slackers and wannabes. Knowing water density and weight of tank you get mass of payload. Using mentioned elevation you get potential energy. Using that as work figure and time to do the work you get power. And you want to give yourself some safety margin so you bump that power up ... Say 30%...  Now that you have power and know supply voltage, you can select motor, size fuses and draw simple motor circuit with necessary controls.  Someone that paid attention in school, has basic math skills, has seen motor circuits and has familiarity with applicable standard can do it quickly and show that he is the candidate you want hired. Others can go back to school to catch up or should consider different line of work  The point is that nobody is perfect and knowing or remembering everything. Offering some help us acceptable too. Getting someone trip on derivation or proof of Maxwells equations may trip most candidates and that is not the point   But if someone does not understand the basics, that is not just a red flag, the interview is over. Everyone need to decide what is it that they expect from a candidate.  If you are hiring a programmer and he does not know about data types, difference in passing parameter by value and by reference, arrays, pointers etc. It means he does not know the basics. There is no point in asking him about more advanced topics. My questions are all about the bottom line and things mentioned in candidates resume. No point in asking about things he did not mention. And he better know enough about things that he did mention. Don't mean to crucify the candidate. And will happily accept inexperience, or various gaps. I will give then chance to learn at work (that is expected and required). But i do not tolerate deception. That is my bottom line   
  12. what is the nature of the failure? PSU? status LEDs? this is a really really old product and "new" replacement is just as old - and likely to fail soon as well. if the goal is to give machine new lease on life, i would  consider switching to a new PLC and rewrite the code if old code is available for reference (electronic or paper) or function of PLC is known. granted, this is not everyone's cup of tea... if you want to try populating missing ICs, do not solder them directly to the board, use IC sockets and insert ICs after soldering. it only costs pennies and will make any further swaps much simpler. also check the dip switch configuration, probably want to make it match original. 
  13. this is product review subforum. Post your product review...
  14. Connect omron CQM1H plc with LAPTOP

    Agreed.... I have bunch of different products and - couple of older ones i still use look like that. Those seem to be all built around Prolific PL2300 series chips (or clones) and - fortunately for me, the ones i got are using original chips and working fine. Because there are plenty of fake PL230x chips and while technically those fake chips can work too - all but very old drivers are recognizing them and will not work with them. You can of course try finding and installing some sufficiently old driver version if you are desperate and can find one for your OS but that is not battle you want to be in. Problem is that even if you manage to get around driver certificates etc. your computer updates will be replacing those all the time. Just stick to known good products from reputable sources ... unless you want to be the one to play roulette and find out the hard way. There are of course also fake FTDI chips but in general going with FTDI seem to be a safer way to go. 
  15. why would you want to do that? why not keep it all same? 
  16. Output polarity selection

    you are welcome. also try not to do anything too complex. when things do not work, break them down in smaller pieces and test each independently.  this is what the approach should look like.... create one rung with positive train, then separate one with inverted train. then combine both using some logic (OR) before passing result to an output. output should be used only once when using normal coil. in your case rung 2 (network 2) was always overwriting the output state that was established in previous network. this is why rung 1 had no effect, regardless of value of %M0.1 (controlled by %I0.0).  
  17. very good, now show that PLC who is the boss...  
  18. Output polarity selection

    you need to learn what scan is and how the data changes after each instruction. this will help you understand issue with double coils and why the code acts the way you observe and not the way you want. if i am not mistaken this seem to be the problem and solution.  
  19. yup... probably incorrect wiring. have not use ML in very long time but was helping students with their project and had to try explaining the outputs and wiring a bit more. here is adapted version. Some ML have mixed outputs. LX32BXBA seem to be one of them. Also all outputs need to be powered - from outside.  Relay outputs are easy to understand, the relay contact is acting just like a switch. And even newbies should not find it hard to understand that every switch needs one side connected to the power and the other connected to the load... And both switch and relay contact will happily handle either AC or DC (within limits, always check specs). And because simple switch (and relay contacts) are not polarized, you can also place the switch (or relay output) in the negative leg of a DC circuit if you want.  To reduce number of termination points, it is very common that inputs and outputs are internally grouped (bussed, ganged) so that single terminal can be used as "common". But this limits options when working with circuits that are galvanically isolated. So to make things more flexible, not all outputs are grouped all together. They may be split into smaller groups so that one can mix and match different loads (AC or DC, positive or negative). In case of L32BXBA, there are four individual outputs (OUT0, OUT1, OUT 8 and OUT 9). Another two relay outputs are OUT10 and OUT11. They are grouped together (they use same supply via terminal DC5/VAC). Transistors outputs are a bit different. Slightly...  They are polarized so one cannot do all of things that we just described with relay outputs. Also (in general) transistor outputs are rated for less current when compared to relay outputs. But they can be FAST, their signal is CLEAN (no bounce, suitable for pulse trains for example), they can last virtually forever (no arcing and degradation due contact oxidation) and they are much smaller (easier to get a lot of them in tiny package). in Case of L32BXBA all six transistor outputs are grouped together (they use same supply VDC2 is positive and COM2 is negative). Reason for two terminals for power is that (unlike relay outputs), transistor are 3 terminal devices so input and output are not galvanically isolated. Therefore outputs have driver logic that is powered from same circuit that the outputs are controlling. This means they need negative terminal as well. And since positive is already present anyway (in this case VDC2), there is a terminal to bring the negative supply too (COM2). Without connecting both, those six outputs are NOT going to work. Finally, I am really not fan of the silly and completely abstract illustrations that this manual uses. So I tried to indicate internal circuitry (relay contacts and transistor outputs). This should help with understanding polarity and easily differentiate the output types. If you are using all outputs to drive DC loads, you may wire them like this:
  20. 1746-OW16

    no but any general purpose or signal diode will do. you can literally replace it with very common 1N4148 or 1N914 or if none are at hand, the classic 1N4001 .. 1N4007 (a huge overkill and larger in size).
  21. very good. it is always better when manufacturers offer support for their products. 
  22. CPT Instruction "freeze"

    makes sense... 32-bit reals use only 23-bits for significant (remaining 9 bits are used for sign and exponent). so they are only good for about 7 significant figures when viewed in decimal... which is why 268455840 or 268455847 makes no difference, both get rounded to a same value.
  23. UL508A panel with UL864

    you are in business of building electrical panels but you don't know if and what standards are met is an indication that you are not qualified or authorized to do that.  https://control-works.com/ul-508a-control-panels-basics-and-benefits/ in that case you can still build it yourself but get your local field evaluation inspector to check it out and apply correct label. if he finds that something is not ok, you will need to fix it and have him come again. hence, i would suggest to talk to him before you start building to avoid any issues later on. or just get some certified panel shop build it for you.  
  24. You can try contacting manufacturer to give you modified ESI file that does not use or mention that feature or has it turned off. Or you can replace PLC for one that does implement this EtherCat feature. EtherCat is developed/supported/popularized by Beckhoff so their PLC will likely have no problem with this. Other companies may support EtherCat but only implement subset of features that EtherCat actually supports. You can also contact Omron and ask about possible way to resolve this. If things go well, it may be just software patch with or without PLC firmware upgrade.  
  25. addressing inputs outputs

    mapping I/O to intermediate data set adds to code length and consumes more memory but it also allows several possible advantages even on a single thread PLC. here are some ideas worth considering:  1. Imagine world where things are done by teams. you are doing programming (and maybe working remotely) and someone else is doing panel wiring. so you may not have access to the real hardware or maybe you only have the PLC CPU but not rest of the I/O or fieldbus etc. then you can still easily write your code without consideration of the IO architecture, type or order of I/O modules etc. the mapping to physical I/O is simple step that can be done later on to work on whatever hardware is actually used.  2. signal names can be more descriptive or easier to use.  3. Imagine one of PLC inputs or outputs is failing and you do not have a replacement module at hand but there is a spare (unused) input or output point. of course you can move the I/O wire to that spare I/O point and make change in code. but if the address of that signal is used in 50 places in program, you would need to search and replace it in 50 places. this can be time consuming, error prone, and makes revisions/program comparisons more difficult. but if you are using intermediate variable, you just need to make program change in one one place. guess which option is preferable when production team is breathing down your neck? And what if this change only need to be temporary and will need to revert back but - you are still developing/testing and making other changes in your PLC programs? reverting things in one place is easy but comparison or in depth search/replace can be very time consuming and error prone.  4. Imagine if one of the signals needs some conditioning (delay, inversion, debouncing, etc.). if that was a hardcoded I/O address used in 50 places in your program, you would have real mess on your hands.  5. your code is a certain "black box" of certain functionality. you spend time developing and debugging it... imagine client decides that they already have plenty powerful PLC that controls entire plant and that same PLC will be used to run several of your "black boxes", you will just need to use different I/O, some of the I/O is local, some is remote. if your code is not using hardcoded I/O addresses, it is easy to create multiple instances of it and complete the task in no time. etc.