DesertDog

MrPLC Member
  • Content count

    38
  • Joined

  • Last visited

Everything posted by DesertDog

  1. SIMPLY SIEMENS WORLD CLASS

    The 200 series is indeed a easy to use powerful PLC. I believe Siemens bought this system from a US company. If you need more power you have to step up to the 300 series. It's not at all like the 200 series and although it is powerful nothing about it is simple.
  2. USB -COM PORT FOR SIEMENS

    Caro, Check PG/PC Interface. Make sure you have PC/PPI Cable(PPI) selected, check the baud rate, AND look under the Local Connection tab to make sure USB is selected.
  3. USB -COM PORT FOR SIEMENS

    It is fast and versatile but as with many PCMCIA cards it's easy to break the connector for this expensive card and the adapter that plugs into the card is large and heavy so just letting it dangle from the laptop will damage the connection. I find the size a problem because I often do field service where my laptop is on an overturned bucket or similar not having a large workspace to let the connector set on.
  4. How to solve problem with MMC

    I have used several of these without any problems. I don't know how you formated it or what the recomended procedure is but mine have always come pre-formatted. I do know that although a standard SD reader will see these cards they will claim they are not formated because Siemens uses a non standard format. Formating one of these as a standard SD will prevent the CPU from being able to read it.
  5. USB -COM PORT FOR SIEMENS

    I have done this but it's as much an issue with the laptop as the device so your results may vary. I have also used the USB PPI cable PN# 6ES7 901-3DB30-0XA0 with no problems.
  6. Step 7 first scan bit ?

    There is a OB100 in Siemens that only runs on the first scan before starting to cycle OB1. This is intended for all such setup functions instead of using a first scan bit. I prefer the style used in most other PLC's so my OB100 only has: SET S     "First Scan" S     "Always On" R     "Always Off" SAVE and the last line in OB1 is SET R     "First Scan" S     "Always On" R     "Always Off" SAVE This can also be done in ladder but it is quick and easy in STL so it's one of the few instances of STL I use. Now if there was a way to get Last Scan such as GE has.
  7. Rpm Calculation

    If it's pulses unless the frequency is very high I just read the time between pulses and figure the RPM from that.   Pulse          P          One Shot ----| |---------| |-----------( )  One Shot ----| |------------(Divide 600 by Timer Value) ------------|-----|--             | TMR |  One Shot   | 0.1S| ----| |-----|Reset|             |_____| This will find the current RPM and reset the timer with the leading edge of the pulse. Accuracy can be adjusted by moving the decimal And/Or creating multiple pulses per revolition and adjusting the math accordingly.
  8. Pulse counting via profibus

    The Siemens FM 350-2 counter can read a pulse and report it as a total count, frequency, speed, etc. This is an 8 channel card but they may have smaller/cheaper options. This is a standard card that connects to the PLC rack but you can place it on an I/O rack with an ET 200M (IM 153-1) DP Slave to make it accessable through Profibus along with any other I/O you want.
  9. Where's the INT to BINARY function?

    That's how I would do it. I would use T's as they are intended for "Temporary" use but it doesn't really matter. If you are worried about using up values, reuse the bits as long as you're careful of the scan order: Move %r into %m's(or %t's) Link %m's into %q's Move New %r into same %m's link %m's to new %q's Etc. As long as the %r is reloaded into the %m's before each output this is no problem.
  10. Acces Siemens S7-315 by VB

    Here's a link to the S7 CP 343-1 Manual Look on page 7 (A-7) for links to other useful manuals.
  11. Acces Siemens S7-315 by VB

    Here's the Send/Recieve demo. This requires some code in the PLC and lets the PLC control the communication as opposed the Fetch/Write where no PLC code is needed but the Application needs to control the comunication. SendRecvDemo.ZIP
  12. Acces Siemens S7-315 by VB

    I recomend using a CP 341-1 and exploring the native TCP/UDP options. I've done the PLC end of this in the past and interfaced with a java app and a c++ app using only windows COM objects and socket connections. Using the Passive Fetch/Write mode you don't even have to have the PLC running to read/write data. I've attached a (somewhat buggy) VB Fetch/Write example and I'll follow with a quick post with a send/recieve VB demo. fchwrtdemo.zip
  13. VB and Siemens S300

    I know you can pull data to/from a CP-343-1 directly using TCP/UDP & windows sockets bypassing the need for an OPC server. If this sounds like a better option for you I can get you some documentation but I also know 0 VB. I did the PLC side for this while the customer supplied the VB.
  14. How it is best?

    I once found that after upgrading from and A1S-S1 to a AH??? a program (in ladder) acted differently. After much troubleshooting I found that a coil set/reset in multiple places was held to the first condition instead of last as if the scan was running back wards. That was the last Mitsubishi project I was on so I don't know if it was just a short term bug or what.
  15. Please help?

    MEDOC willalso program through the RS-232 port but there is some minor function loss, you can't force anything for instance.
  16. How to Unprotect S7 Blocks

    Previous Thread On This
  17. S7 200

    In two years of exclusively using Step 7 I don't see anything it can do that GE, Mitsubishi, & AB can't do more easily. The only powerful ability I see lacking in the others is the ability to make your own commands. I also tend to find that the 300 series uses comparatively more memory and runs at a slower scan rate for similar applications. Just do a reusable indexed indirect addressing application to see how powerful Step 7 is, it's one simple command in GE.
  18. S7-200 Microwin Pulse -|P|-

    Is the output a normal out or is it a set in which case it will remain on after the initial pulse
  19. S7 200

    I agree, I just used the 200 series for the first time recently and it is so much better than the 300's. It actually works like a normal PLC and the help is usually even relevant.
  20. Monday's suck 90-30 I/O flakey...

    Is the terminator installed? The last place I worked was notorious for not using the terminators. It is the capped connector that is supposed to go on the outbound connection of the last rack to prevent communication reflection (self generated noise).
  21. Programming help. (LD)

    Look at THIS thread on array moves.
  22. Mitsubishi Q Series CPU

    This is how I always did it. Main Call Sub1 Call Sub2 Call ...... Fend Sub1 Code... RET Sub2 Code... RET END I may have mixed END and FEND, it's been a few years. Make sure you don't forget the return or it will continue through the next sub until it hits RET or END, this can be a useful feature on rare occasions.
  23. ProTool Pro RT communicating with S7-200

    I have no certain answers for you but I would apply W2K SP 3 or 4 and possibly upgrade the memory. These don't seem likely to be the cause but I don't know of anything else given the info presented.
  24. Indirect Address Work Arounds for GE 90/30

    In the example below: %R00001 is the first register in the source array %R00050 is the first register in the destination array %R00100 is the source index or offset, this is how far from the first value you want to start. With GE the value to point to first value in an array is 1 not zero. %R00101 is the destination index or offset. See source rules. The N here is a constant of 5 but can also be a register value. This is how many values to move from the source to the destination. Don't forget LEN. This is easily forgotten but will prevent the code from working. The LEN is the length of the arrays and must be set to the length of the longest of the two arrays. |         _____ |%I00001 |     | |——| |———|ARRAY|— |        |_MOVE| |        |_WORD| |%R00001—|SR DS|—%R00050 |        | LEN | |        |00016| |%R00100—|SNX  | |        |     | |        |     | |%R00101—|DNX  | |        |     | |        |     | | CONST —|N    | |  00005 |_____| | GE Parameter Description enable When the function is enabled, the operation is performed. SR SR contains the starting address of the source array. For ARRAY_MOVE_BIT, any reference may be used; it does not need to be byte aligned. However, 1 bit, beginning with the reference address specified, is displayed online. SNX SNX contains the index of the source array. DNX DNX contains the index of the destination array. N N provides a count indicator. ok The ok output is energized whenever the function is enabled. If NX is out of range, ok will not be energized. DS DS contains the starting address of the destination array. For ARRAY_MOVE_BIT, any reference may be used; it does not need to be byte aligned. However, 1 bit, beginning with the reference address specified, is displayed online. LEN LEN specifies the number of elements starting at SR and DS that make up each array. GE Technical Description Use the Array Move (ARRAY_MOVE) function to copy a specified number of data elements from a source array to a destination array. The ARRAY_MOVE function has six input parameters and two output parameters. When the function receives power flow, the number of data elements in the count indicator (N) is extracted from the input array starting with the indexed location (SR + SNX – 1). The data elements are written to the output array starting with the indexed location (DS + DNX – 1). The LEN operand specifies the number of elements that make up each array. For ARRAY_MOVE_BIT, when word-oriented memory is selected for the parameters of the source array and/or destination array starting address, the least significant bit of the specified word is the first bit of the array. The value displayed contains 16 bits, regardless of the length of the array. The indices in an ARRAY_MOVE instruction are 1-based. In using an ARRAY_MOVE, no element outside either the source or destination arrays, as specified by their starting address and length, may be referenced.
  25. Detecting Step 7 DB numbers in FBD

    Here is a bit of code from an example Klaus gave me for a different project but it loads an input value an then finds & opens the DB. Input:  BoolIn (Bool) // Read In Pointer info     L     P##BoolIn              // Load BoolIn as a Pointer     LAR1                         // Into Address Register // Determine & Open Data Block     L     W [AR1,P#0.0]          // Loads the DB Number     T     #DB_Number             // Transfer Data Block Number To Temp Area     OPN   DB [#DB_Number]        // Opens the Data Block