MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

12 Good


About pop29684

  • Rank
  • Birthday 12/19/56

Profile Information

  • Gender Male
  • Country United States
  1. Replacing MOV with CLR

    Thought I'd share an experience I had earlier today working on a (limited memory) L61 Rockwell processor. I knew there was very little room left in the memory but needed to add some functionality and decided to give it a try anyway. I couldn't take the machine down to make a download so made a number of online edits, successfully accepting and finalizing after each edit. Got down to the last four edits which required zeroing a tag of type REAL. The instructions were on four separate rungs. Hoping to save time (and all previous edits were successful), I added the four MOV instructions (MOV 0 into TAG) and pressed the "finalize" button. I was caught quite off-guard when the process failed: insufficient memory. AAAAGGGGHHHH!!!! So close! I tried to remove some logic to free enough memory to add the required instructions. Nope. Rockwell was not going to negotiate. That left me in a position where I thought I was going to have to take the machine down and do, hopefully, a download that would push the processor memory to the limit but be accepted without any hiccups. But before I did that I had a fortuitous thought. I F1'd the MOV instruction and hoped to find a complete explanation of the instruction, including timing diagrams, execution time, memory requirements, etc. Oh wait - that's Siemens. GROAN. Curious and desperate, I replaced each MOV instruction in my edited code (I'd estimate somewhere around 20 instances or slightly more) with the CLR instruction - including the four additional instances I needed. And finalized the edits with bated breath. To my utter surprise (again!) the edits were finalized without overrunning the memory. A MOV instruction requires memory for both the source and destination. Since I was only clearing a memory I didn't need to reserve memory for the source. Using a CLR instruction implies "0" (zero) for the source but requires no memory for the source value. Hence the efficiency. Obviously, this story would have a different ending if I had been trying to move some value other than zero into a destination tag. I offer my experience as a lesson if you ever need to streamline some code to fit existing memory space. I also would like to know if there are any downsides to what I've done. Have i overlooked any potential pitfalls? Thanks in advance for the advice.
  2. TOT Instruction

    Thanks, Bob.
  3. TOT Instruction

    I have an existing machine that pulls several rolls of film through it and executes a sealing process. The machine has a scaled feedback value (Tag: Velocity, Type: REAL). No one knows for sure what the engineering unit is (inches per second, feet per minute, etc.) of this tag. The supervisor wants to add an accumulative length counter based on this feedback value. The purpose is to have some idea of the total amount of film run through the machine for comparing to the total pieces of product produced. A colleague suggested using the TOT (Totalizer) function block or structured text instruction in a timed task. But the instruction itself has a timebase for execution control. I've searched the forum but cannot find anything related. Anyone have experience doing this or something similar? Or perhaps use a different instruction? The processor is a CompactLogix 5730-L18ERM. I just received the project specifications today and the due date is next week. (Of course!) So there is no time to research, design, purchase, install additional hardware. No pressure here! Haha.
  4. Samsung N-70 PLC software

    From the RS Automation.biz website: This model is discontinued, so please contact Customer Center (1588-5298) for further information. However, if you will go to their "Data" page you will find their customer support, including manuals, software, etc. I downloaded the software .zip file for free. P.S.: the software might be named something other than winfpst.
  5. STL

    Joe, I've also run into these situations. In most of them the logic aggregated into a single rung is usually intentional. This is a poor man's way of keeping logic proprietary. As you have discovered, it can be read and sorted into individual networks which can then be much easier to read and troubleshoot. The NOPs are used as placeholders, which explains why sometimes deleting them works and sometimes not. And you are correct in your final assessment that converting LAD to STL always works but not always the other way around. The rule of thumb is that output instructions used within the same statement will usually convert readily to LAD. The logic below  will convert to LAD without any re-writing: A     I0.0 A     I0.1 =     O5.0 =     O6.1 However, the logic below will not readily convert. to LAD The reason for this is that the two output instructions are not part of the same logic evaluation. A     I0.0 =     O5.0 A     I0.1 =     O6.1 Why write aggregated logic in a single network? Most of the time it is because the programmer A.) has a European programming perspective/background/training or B.) they might be computer programmers rather than PLC programmers. Just my observations. I'm sure there could be other reasons as well. I've worked with both sides of the Atlantic and have come to appreciate the contribution of each side. Another major difference I've noticed is that US programmers writing in STL tend to favor the JP (jump positive) instruction whereas the Europeans tend to like the the JN (jump negative) instruction. It took me a long time to understand the difference. Now that I do, I also tend to favor the JN instruction. But that's a discussion for another day . . . .
  6. Are you asking about the firmware updates? No, this is not widespread in the USA. Are you asking about the use of RedLiion? Yes, they are used frequently here in the USA. Especially when you need to move data between hardware platforms. I don't think there's any equal for this functionality. The translation is automatic. Connect any two hardware platforms and the Red Lion will happily move data bi-directionally all day long without any complaint. Most hardware drivers are included.
  7. simatic APT

    You can download the hardware manual from this link: https://support.industry.siemens.com/cs/document/8776697/simatic-tdc-simatic-tdc-hardware?dti=0&pnid=14307&lc=en-WW.
  8. Not to mention the free HMI firmware upgrades that keep their performance competitive.
  9. Plc Kvara 6

    The first link I found is here: http://products.mechatrolink.org/en/product/detail/id=238. The controller is identified as MECHATROLINK Spec M-II. Clicking the "PDF" link on this page takes you to here: http://products.mechatrolink.org/direct/page/generatePDF/?path=%2Fen%2Ftopics_detail1%2Fid%3D238&orientation=portrait&file_nm=catalog_238.pdf&disp=inline&margin=0&no_cache=1.  Clicking the  "DOWNLOAD" button takes you here: http://www.mechatrolink.org/en/download/index.html. From this page you can click "Technicl Document"  and find this page: http://www.mechatrolink.org/en/download/manual.html. Be sure to select only documents related to the "M-II" series. There is also a "Software" button which takes you here: http://www.mechatrolink.org/en/download/software.html. However, only "M-III" related software is presented. The device MFR is identified as ESA/GV. Searching for this will take you to this site: http://www.esautomotion.com/home/main/ABOUT-US where you can see telephone and fax numbers for contacting the controller MFR.
  10. siemens

    Have you contacted your Siemens representative?
  11. what's the advantage of installing genuine software?

    The obvious reasons to use genuine software have been well enumerated. Cracked software might seem attractive but think of what payloads might be attached. Key trackers, data theft, etc. I don't think the risk is worth it. If I remember correctly, this is how Stuxnet got started. It was incorporated into a crack package that ended up being distributed and installed all over the M.E. and Eastern Europe. My final answer is: don't.
  12. Turning CW and CCw after a delay

    I cannot think of any application where you would want to logically start/run a motor without any logical means to stop it. However, if you are so determined then press the PB once to start the motor. Then disconnect the PB from the PLC. The state of Y2 can also be directly manipulated while online in the software. If you choose to do this then there is no need for the first rung of the logic.
  13. easyE4 nanoPLC

    What is your application? If it is only a home use or learning exercise then I would consider using a Raspberry Pi loaded with CoDesys.
  14. I just recently began using ProjectLibre, which is an open source software. You can download it here: https://sourceforge.net/projects/projectlibre/. My decision to use this software: 1. It isn't Microsoft! 2. It is open source. 3. It will import Microsoft Project files (my primary reason - oh, you thought it was reason number 1? LOL.) After using this software now for a few weeks, I like it. If you have ever used Microsoft Project then you should be able to use this software.
  15. SIEMENS S7 200

    I think I understand what you are trying to accomplish: 1. Turn on a buzzer output for 3 seconds when a PB is pressed; buzzer must continue to sound for the full 3 second period even if the PB is released before the timeout period (3s). 2. Re-trigger the buzzer timer for another 3 seconds if the PB is released and pressed before the initial 3 second period has timed out. The solution is not readily seen because normally one would think that the trigger/re-trigger logic would apply only to the timer. This is not possible because an extended pulse timer cannot be re-triggered until it has timed out. A standard TON will not work because releasing the input PB before the timer has timed out will cause an immediate reset of the timer and the buzzer will turn off. However, a solution is possible: use a re-triggerable timer (TON) but latch the buzzer output directly from the PB press. Test the logic below. I think it will do what you wish. I don't have a 224 CPU to test. Let me know if this is what you are trying to do. EDIT 5 JULY 2019: I just tested this in the simulator. It works. Change the timer preset (PT) value to  300.