8/13/2014 8:38 PM | |
Posts: 5225 Rating: (1192) |
Hi there guys. It indeed seems as though this thread has attracted some conversation. I find it is good to exchange some thoughts in this manner. Every designer has his/her own idea of how things should be done.. seldom is there an absolute right way of doing things. It is good if a designer can adapt to another designer's framework (Rockwell vs Siemens) and tap the most for that platform. Thanks to Romendra for the challenge tyhat started this conversation. ------------------------------------------------------------------------------------------------------------------------ @Jens: I have not heard from you in a while.. it is good to hear from you again. I am unsure to what depth your questions are referring to. I will try to satisfy your curiosity. --------FAL FUNCTION Traditionally I have more difficulty translating Rockwell thinking to Siemens users than the other way around. Knowing you, you will already have searched the functioning of the Rockwell FAL instruction. I guess you already have a fair idea of what is going on, but I will add a few thoughts. Let us compare a SIEMENS and ROCKWELL functions.. (TON @ SIEMENS) The TON block is linked to a DB. TIA even call it a data type, namely IEC_TIMER. IEC_TIMER comprises of several smaller elements that may be used by other instructions. You do not re-use the linked DB for another IEC timer. The same IEC_TIMER data type is used for TOF and TONR commands. {FAL @ ROCKWELL) The first function input is of CONTROL data type and is used by FAL. Again there are several smaller elements that make up this data type that can be used elsewhere. A unique variable is assigned for each instruction and the variable's reach is global. Many other (file) instructions, as example BIT SHIFT LEFT (BSL), uses this type as "memory" much as you would a DB in TIA. One thing to remember though is that Rockwell's instructions and code blocks in actual fact behave like FCs, as there are not really a thing like "data blocks" but rather globally applied variables. These variables can however be set to "private" / local to limit permission of code blocks to use the variables. In TIA the permission to a DB is not blocked to code blocks when you know the full variable name / location. The rest of the function then falls into place as a FOR loop with an arithmetic function that is stored in a destination. In essence the example is a bit-by-bit operation executed throughout all the WORDS in the array. The expression encapsulated in the FOR loop is simplified as: WORD_2 := WORD_1 OR WORD_2 ------------------------------------------------------------------------------------------------------------------------ --------THE PRESENTED TIA EXAMPLE With my examples I have tried to stay as close to a format that can be recognised by ROCKWELL coders, but yet advertise also how SIEMENS does things. Two examples were presented.. one coded in SCL and another in LADDER (more often used). The same function is handled by both FC1 and FC2. * #ENTRY >> incoming events (x16 per element) that triggers an alarm * #LATCHED >> the alarm events (x16 per element) that is kept alive until acknowledged * #CLEAR >> the acknowledgement (x16 per element) The acknowledgement bit (#CLEAR) is cleared as soon as it is used. It has no influence however when the incoming event (#ENTRY) is still active. Other combinations are possible when using the XOR function and a buffering array to detect only new events. (FC1) Line 3 handles a BOOLEAN operation executed over a WORD. The WORDs are in turn elements of an ARRAY. Line 4 ensures that an acknowledgement bit is only used momentarily. Line 4 also demonstrates what can not be done with a single FAL function and would require a fill instruction that would waste process time. (FC2) CALCULATE is available to S7-1200 and S7-1500 CPUs. FC1, line 3 is replicated in this function: OUT := IN1 AND NOT(IN2) OR IN3 Other processors would require temporary storage and several command instructions to achieve this function. ROCKWELL coders would use the CPT instruction - but the CPT instruction can do much more. The rest of FC2 tries to handles the same functionality as FC1 is doing. Clearly SCL makes it easier than LADDER - - for this case. ------------------------------------------------------------------------------------------------------------------------ I hope this answers all the questions. Jens - as always - feel free to ask if something was still left in dark corners. Greetings. w |
This contribution was helpful to1 thankful Users |
8/19/2014 6:38 PM | |
Posts: 5225 Rating: (1192) |
..we can contribute our codes and people could just use it www.oscat.de www.plcopen.org ?> Siemens Technical Forum |