pop29684

MrPLC Member
  • Content count

    78
  • Joined

  • Last visited

Community Reputation

9 Neutral

2 Followers

About pop29684

  • Rank
    Sparky
  • Birthday 12/19/56

Profile Information

  • Gender Male
  • Country United States
  1. How are you reading the data? Is it written directly to a memory/data block by the temperature controller? Or are you using a READ instruction of some kind? If the latter, it seems easy enough to timestamp the data every time it is read and transferred to the data block.
  2. How to increase STRING length in Data Block in S7 300 PLC program

    Currently in the data block shown, "SerialNumber" is type "string" with a specified length of [10] and "MCR" is type "string" with a specified length of [10]. The address of "SerialNumber" is 0. The address of "MCR" is 12. If you wish to increase the length of the "SerialNumber" string to 12 characters then edit the length in the "Type" column: String[12]. When you do this, the address of "MCR" will change automatically. It will no longer begin at address 12. It will begin at address 14. This is important because you will have to trace this address throughout the entire program logic and verify that the logic queries the correct address for "MCR" (direct addressing). You also need to verify that if any pointers are used in the current program to point to "MCR", these pointer offsets will need to be changed to reflect the new address of "MCR".
  3. Count cycle time on step 7 300

    Your logic will work with a little re-arrangement: 1. Remove current rung six (NW6) and insert it somewhere before current rung five (NW5). 2. Use address T1 for the N.O. contact of the counter CU parameter. Counters (or any other logic) used to count timer pulses should always be used ahead of (before, prior to) the timer when used in the same module. I don't have a clear explanation except that I have experienced this before. I think it has to do with the execution of timers, counters, and markers. Which are all immediate - not written to a table and then read on the subsequent scan. Although if you were to place your counter in a different module that was executed after the timer module, the counter should still work.
  4. How to increase STRING length in Data Block in S7 300 PLC program

    You should be able to directly edit the length of the "SerialNumber" string in the data block (DB). Please keep in mind that if you change the length of the string you might find it necessary to change a step or offset (pointer) value elsewhere in the logic because the MCR string will no longer begin at 12.0.
  5. Micrologix 1400 Post mortem

    Or perhaps there was no snubber/clamp on the coil . . . . Collapsing magnetic fields can be destructive.
  6. Fast Fourier transform on PLC

    I found it. Use the search term, "jaakko pasanen".
  7. PANELVIEW 600 COMMUNICATION PROBLEM

    Is this PV600 connected to a Siemens PLC?
  8. Monitor alarm block

    What have you tried so far?
  9. S5 STL Help

    Ah, yes. Actually, F2.0 and F2.1 act as flip/flops (F/F). They are driven by F2.2. Which is acting as a one-shot because of its placement after T31. The period of the F/F pulse is: T31 * 2 = 500ms * 2 = 1s The duty cycle is 50 percent. Replacing the SET and RESET instructions with an EQUAL instruction will streamline the logic a little, permitting the elimination of two networks and one marker bit. // (NW1) Load and start timer :AN M 2.2 :L KT 005.1 :SD T 31 // (NW2) Create one-shot bit :A T 31 := F 2.2 // (NW3) Create F/F :A F 2.2 :AN F 2.0 :O :AN F 2.2 :A F 2.0 := F 2.0 // (NW7) BLOCK END (return) :BE
  10. S5 STL Help

    I'm not sure what the overall operation of the code is because I don't know what the conditions are that SET some of the bits used in your example. However, the second and third lines preset a timer. I've found that separating contiguous STL code into NW segments significantly improves my understanding and speeds the conversion process to LAD. I've edited the STL code you provided and made some editorial clarifications regarding timer types and timer timebases. // (NW1) Use a marker bit to load and start a timer :AN F 2.2 :L KT 005.1 // Preset timer with 5 cycles of 100ms = 500ms :SD T 31    // Activate timer (T31) // (NW2) Use the timer bit to activate a marker bit :A T 31 := F 2.2 // (NW3) Use two marker bits to SET a marker bit :A F 2.2 :AN F 2.1 :S F 2.0 // (NW4) Use two marker bits to RESET a marker bit :A F 2.2 :A F 2.1 :R F 2.0 // (NW5) Use two marker bits to SET a marker bit :AN F 2.2 :A F 2.0 :S F 2.1 // (NW6) Use two marker bits RESET a marker bit :AN F 2.2 :AN F 2.0 :R F 2.1 // (NW7) BLOCK END (return) :BE // Information // Step 5 Timebases // 0 =  0.01s = 10ms // 1 =  0.1s  = 100ms // 2 =  1s    = 1000ms // 3 = 10s    = 10000ms // Timer types // SD > S_ODT (on-delay) // SF > S_OFFDT (off-delay) // SP > S_PULSE (pulse) // SE > S_PEXT (extended pulse) // SS > S_ODTS (retentive on-delay) S5 STL Conversion matt_C_25.txt
  11. View File Keyence KV-D20 How to Cycle User Messages This is an example (with code) on how to cycle user messages on the Keyence KV-D20 display. The code is written as a sub-routine that is easily incorporated into a Keyence KV series PLC. The code is proven to work - I've used it many, many times. A brief rung-by-rung commentary explains the basic operation of the code. Submitter pop29684 Submitted 10/04/16 Category Tutorials and Guides
  12. Version 1.0.0

    33 downloads

    This is an example (with code) on how to cycle user messages on the Keyence KV-D20 display. The code is written as a sub-routine that is easily incorporated into a Keyence KV series PLC. The code is proven to work - I've used it many, many times. A brief rung-by-rung commentary explains the basic operation of the code.
  13. S5 STL Help

    Just remember that when using two networks (rungs) to create a one-shot, you must make sure that the conditions always remain the same for both rungs. Otherwise your one-shot may give you countless hours of troubleshooting fun! Any changes you make to the conditions of one rung must be reflected in the other rung. Another caveat to remember is that the scan order is important in order for the one-shot to function correctly. Do not reverse the two rungs! One way to eliminate the first gotcha is to simplify the logic to a single rung. In this way all conditions are contained in one rung (and always to the left of the red line). I'm not lazy - just "efficient". Order is important in this construction, also. The one-shot bit and its blocking bit (memory bit) must always be on top.
  14. Your idea to combine the logic of rungs 9 and 10 is a good idea but not just for the reason you stated (clarity). As written in the first screen shot (separate rungs controlling the same output), the conditional control of rung 10 (second rung) will always overwrite the conditional control of  the previous rung 9 (first rung). Imagine that the conditions of rung 9 are true. The result is that the output of rung 9 will be turned "ON". Now imagine that the conditions of rung 10 are false. The result is that the output of rung 10 (same output just turned "ON" by rung 9) is immediately turned "OFF". The final state of the output will be "OFF" because that was the last operation performed on the output. This behavior is normal and must always be taken into account when using OTE instructions. Look carefully at the combined logic in the single rung - rung 10. You have taken two parallel ("OR") conditions and created a series ("AND") condition. Do you see it? The only difference between the rungs in the first screen shot is the N.C. condition of B3:1/1 ("AT_INVERT_HEIGHT_REV") or the two conditions of either N.O. I:0/13 ("LOW_LIMIT_INVERTED") or N.C. I:0/16 ("LOAD_POSITION"). To preserve the original conditions you must move both of the two conditions [either N.O. I:0/13 ("LOW_LIMIT_INVERTED") or N.C. I:0/16 ("LOAD_POSITION")] in parallel with the condition of B3:1/1 ("AT_INVERT_HEIGHT_REV"). Finally, you should be okay using the N.C. contact B3:3/0 ahead of the OTE control of B3:3/0. This does not normally cause any issues.
  15. View File Sequence Diagram Example This file is an example showing how the sequence diagram template is used. This file is in .pdf form but is available as a Visio file. Message me through this forum to request a copy. Submitter pop29684 Submitted 09/07/16 Category Tutorials and Guides