Installing the S7-200

Chia sẻ: Hong Viet | Ngày: | Loại File: PDF | Số trang:20

1
112
lượt xem
25
download

Installing the S7-200

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'installing the s7-200', kỹ thuật - công nghệ, điện - điện tử phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Installing the S7-200

  1. Installing the S7-200 Chapter 3 Guidelines for Grounding the S7-200 The best way to ground your application is to ensure that all the common and ground connections of your S7-200 and related equipment are grounded to a single point. This single point should be connected directly to the earth ground for your system. For improved electrical noise protection, it is recommended that all DC common returns be connected to the same single-point earth ground. Connect the 24 VDC sensor supply common (M) to earth ground. All ground wires should be as short as possible and should use a large wire size, such as 2 mm2 (14 AWG). 3 When locating grounds, remember to consider safety grounding requirements and the proper operation of protective interrupting devices. Guidelines for Wiring the S7-200 When designing the wiring for your S7-200, provide a single disconnect switch that simultaneously removes power from the S7-200 CPU power supply, from all input circuits, and from all output circuits. Provide overcurrent protection, such as a fuse or circuit breaker, to limit fault currents on supply wiring. You might want to provide additional protection by placing a fuse or other current limit in each output circuit. Install appropriate surge suppression devices for any wiring that could be subject to lightning surges. Avoid placing low-voltage signal wires and communications cables in the same wire tray with AC wires and high-energy, rapidly switched DC wires. Always route wires in pairs, with the neutral or common wire paired with the hot or signal-carrying wire. Use the shortest wire possible and ensure that the wire is sized properly to carry the required current. The connector accepts wire sizes from 2 mm2 to 0.3 mm2 (14 AWG to 22 AWG). Use shielded wires for optimum protection against electrical noise. Typically, grounding the shield at the S7-200 gives the best results. When wiring input circuits that are powered by an external power supply, include an overcurrent protection device in that circuit. External protection is not necessary for circuits that are powered by the 24 VDC sensor supply from the S7-200 because the sensor supply is already current-limited. Most S7-200 modules have removable connectors for user wiring. (Refer to Appendix A to determine if your module has removable connectors.) To prevent loose connections, ensure that the connector is seated securely and that the wire is installed securely into the connector. To avoid damaging the connector, be careful that you do not over-tighten the screws. The maximum torque for the connector screw is 0.56 N-m (5 inch-pounds). To help prevent unwanted current flows in your installation, the S7-200 provides isolation boundaries at certain points. When you plan the wiring for your system, you should consider these isolation boundaries. Refer to Appendix A for the amount of isolation provided and the location of the isolation boundaries. Isolation boundaries rated less than 1500 VAC must not be depended on as safety boundaries. Tip For a communications network, the maximum length of the communications cable is 50 m without using a repeater. The communications port on the S7-200 is non-isolated. Refer to Chapter 7 for more information. 19
  2. S7-200 Programmable Controller System Manual Guidelines for Suppression Circuits You should equip inductive loads with suppression circuits to limit voltage rise when the control output turns off. Suppression circuits protect your outputs from premature failure due to high inductive switching currents. In addition, suppression circuits limit the electrical noise generated when switching inductive loads. Tip 3 The effectiveness of a given suppression circuit depends on the application, and you must verify it for your particular use. Always ensure that all components used in your suppression circuit are rated for use in the application. DC Outputs and Relays That Control DC Loads The DC outputs have internal protection that is adequate for most applications. Since the relays can be used for either a DC or an AC load, internal protection is not provided. Figure 3-3 shows a sample suppression circuit A B (optional) for a DC load. In most applications, the addition A - I1N4001 diode or equivalent - of a diode (A) across the inductive load is B - 8.2 V Zener for DC Outputs - suitable, but if your application requires faster Output 36 V Zener for Relay Outputs turn-off times, then the addition of a Zener Point diode (B) is recommended. Be sure to size your DC Inductive Load Zener d ode properly for the amount of current e e diode p ope y o t e a ou t o cu e t in your output circuit. Figure 3-3 Suppression Circuit for a DC Load AC Outputs and Relays That Control AC Loads The AC outputs have internal protection that is adequate for most applications. Since the relays can be used for either a DC or an AC load, internal protection is not provided. Figure 3-4 shows a sample suppression circuit .1 µ F 100 to 120 Ω for an AC load. When you use a relay or AC output to switch 115 V/230 VAC loads, place MOV resistor/capacitor networks across the AC load as shown in this figure. You can also use a metal oxide varistor (MOV) to limit peak voltage. Ensure that the working voltage of the Output Point MOV is at least 20% greater than the nominal AC Inductive Load line voltage. Figure 3-4 Suppression Circuit for an AC Load Notice When relay expansion modules are used to switch 230 VAC inductive loads, the external resistor/capacitor noise suppression circuit must be placed across the AC load as shown in Figure 3-4. 20
  3. PLC Concepts The basic function of the S7-200 is to monitor field inputs and, based on your control logic, turn on or off field output devices. This chapter explains the concepts used to execute your program, the various types of memory used, and how that memory is retained. In This Chapter Understanding How the S7-200 Executes Your Control Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Accessing the Data of the S7-200 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Understanding How the S7-200 Saves and Restores Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Storing Your Program on a Memory Cartridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Selecting the Operating Mode for the S7-200 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Using Your Program to Save V Memory to the EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Features of the S7-200 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 21
  4. S7-200 Programmable Controller System Manual Understanding How the S7-200 Executes Your Control Logic The S7-200 continuously cycles through the control logic in your program, reading and writing data. The S7-200 Relates Your Program to the Physical Inputs and Outputs The basic operation of the S7-200 is very simple: Start_PB E_Stop M_Starter - The S7-200 reads the status of the inputs. - The program that is stored in the S7-200 uses these M_Starter Motor inputs to evaluate the control logic. As the program 4 runs, the S7-200 updates the data. - The S7-200 writes the data to the outputs. Output Motor Starter Figure 4-1 shows a simple diagram of how an electrical relay diagram relates to the S7-200. In this example, the Input state of the switch for starting the motor is combined with Start / Stop Switch the states of other inputs. The calculations of these states then determine the state for the output that goes to the actuator which starts the motor. Figure 4-1 Controlling Inputs and Outputs The S7-200 Executes Its Tasks in a Scan Cycle The S7-200 executes a series of tasks repetitively. This cyclical execution of tasks is called the scan cycle. As shown in Figure 4-2, the S7-200 performs most or all of the following tasks during a scan cycle: - Reading the inputs: The S7-200 copies the state of the physical inputs to the process-image input Writes to the outputs register. - Executing the control logic in the program: The S7-200 executes the instructions of the program and Perform the CPU Diagnostics stores the values in the various memory areas. Process any Communications Requests - Processing any communications requests: The S7-200 performs any tasks required for communications. Execute the Program Scan Cycle - Executing the CPU self-test diagnostics: The S7-200 ensures that the firmware, the program memory, and any expansion modules are working properly. Reads the inputs - Writing to the outputs: The values stored in the process-image process image output register are written to the Figure 4-2 S7-200 Scan Cycle physical outputs. The execution of the scan cycle is dependent upon whether the S7-200 is in STOP mode or in RUN mode. In RUN mode, your program is executed; in STOP mode, your program is not executed. 22
  5. PLC Concepts Chapter 4 Reading the Inputs Digital inputs: Each scan cycle begins by reading the current value of the digital inputs and then writing these values to the process-image input register. Analog inputs: The S7-200 does not update analog inputs as part of the normal scan cycle unless filtering of analog inputs is enabled. An analog filter is provided to allow you to have a more stable signal. You can enable the analog filter for each analog input point. When analog input filtering is enabled for an analog input, the S7-200 updates that analog input once per scan cycle, performs the filtering function, and stores the filtered value internally. The filtered value is then supplied each time your program accesses the analog input. When analog filtering is not enabled, the S7-200 reads the value of the analog input from the physical module each time your program accesses the analog input. 4 Tip Analog input filtering is provided to allow you to have a more stable analog value. Use the analog input filter for applications where the input signal varies slowly with time. If the signal is a high-speed signal, then you should not enable the analog filter. Do not use the analog filter with modules that pass digital information or alarm indications in the analog words. Always disable analog filtering for RTD, Thermocouple, and AS-Interface Master modules. Executing the Program During the execution phase of the scan cycle, the S7-200 executes your program, starting with the first instruction and proceeding to the end instruction. The immediate I/O instructions give you immediate access to inputs and outputs during the execution of either the program or an interrupt routine. If you use interrupts in your program, the interrupt routines that are associated with the interrupt events are stored as part of the program. The interrupt routines are not executed as part of the normal scan cycle, but are executed when the interrupt event occurs (which could be at any point in the scan cycle). Processing Any Communications Requests During the message-processing phase of the scan cycle, the S7-200 processes any messages that were received from the communications port or intelligent I/O modules. Executing the CPU Self-test Diagnostics During this phase of the scan cycle, the S7-200 checks for proper operation of the CPU, for memory areas, and for the status of any expansion modules. Writing to the Digital Outputs At the end of every scan cycle, the S7-200 writes the values stored in the process-image output register to the digital outputs. (Analog outputs are updated immediately, independently from the scan cycle.) 23
  6. S7-200 Programmable Controller System Manual Accessing the Data of the S7-200 The S7-200 stores information in different memory locations that have unique addresses. You can explicitly identify the memory address that you want to access. This allows your program to have direct access to the information. Table 4-1 shows the range of integer values that can be represented by the different sizes of data. Table 4-1 Decimal and Hexadecimal Ranges for the Different Sizes of Data Representation Byte (B) Word (W) Double Word (D) Unsigned Integer 0 to 255 0 to 65,535 0 to 4,294,967,295 4 Signed Integer 0 to FF - -128 to +127 0 to FFFF - -32,768 to +32,767 0 to FFFF FFFF - -2,147,483,648 to +2,147,483,647 80 to 7F 8000 to 7FFF 8000 0000 to 7FFF FFFF Real Not applicable Not applicable +1.175495E- -38 to +3.402823E+38 (positive) IEEE 32-bit Floating Point - -1.175495E- -38 to - -3.402823E+38 (negative) To access a bit in a memory area, you specify the address, which includes the memory area identifier, the byte address, and the bit number. Figure 4-3 shows an example of accessing a bit (which is also called “byte.bit” addressing). In this example, the memory area and byte address (I = input, and 3 = byte 3) are followed by a period (“.”) to separate the bit address (bit 4). I 3 . 4 Process-image Input (I) Memory Area Bit of byte, or bit number: bit 4 of 8 (0 to 7) 7 6 5 4 3 2 1 0 Period separates the Byte 0 byte address from the bit Byte 1 number Byte 2 Byte address: byte 3 (the Byte 3 fourth byte) Byte 4 Memory area identifier Byte 5 Figure 4-3 Byte.Bit Addressing You can access data in most memory areas (V, I, Q, M, S, L, and SM) as bytes, words, or double words by using the byte-address format. To access a byte, word, or double word of data in the memory, you must specify the address in a way similar to specifying the address for a bit. This includes an area identifier, data size designation, and the starting byte address of the byte, word, or double-word value, as shown in Figure 4-4. Data in other memory areas (such as T, C, HC, and the accumulators) are accessed by using an address format that includes an area identifier and a device number. 24
  7. PLC Concepts Chapter 4 V B 100 V W 100 V D 100 Byte address Byte address Byte address Access to a byte size Access to a word size Access to a double word size Area identifier Area identifier Area identifier MSB LSB VB100 7 VB100 0 MSB = most significant bit LSB = least significant bit Most significant byte Least significant byte MSB LSB VW100 15 VB100 8 7 VB101 0 Most significant byte Least significant byte VD100 MSB 31 VB100 24 23 VB101 16 15 VB102 8 7 VB103 LSB 0 4 Figure 4-4 Comparing Byte, Word, and Double-Word Access to the Same Address Accessing Data in the Memory Areas Process-Image Input Register: I The S7-200 samples the physical input points at the beginning of each scan cycle and writes these values to the process-image input register. You can access the process-image input register in bits, bytes, words, or double words: Bit: I[byte address].[bit address] I0.1 Byte, Word, or Double Word: I[size][starting byte address] IB4 Process-Image Output Register: Q At the end of the scan cycle, the S7-200 copies the values stored in the process-image output register to the physical output points. You can access the process-image output register in bits, bytes, words, or double words: Bit: Q[byte address].[bit address] Q1.1 Byte, Word, or Double Word: Q[size][starting byte address] QB5 Variable Memory Area: V You can use V memory to store intermediate results of operations being performed by the control logic in your program. You can also use V memory to store other data pertaining to your process or task. You can access the V memory area in bits, bytes, words, or double words: Bit: V[byte address].[bit address] V10.2 Byte, Word, or Double Word: V[size][starting byte address] VW100 Bit Memory Area: M You can use the bit memory area (M memory) as control relays to store the intermediate status of an operation or other control information. You can access the bit memory area in bits, bytes, words, or double words: Bit: M[byte address].[bit address] M26.7 Byte, Word, or Double Word: M[size][starting byte address] MD20 25
  8. S7-200 Programmable Controller System Manual Timer Memory Area: T The S7-200 provides timers that count increments of time in resolutions (time-base increments) of 1 ms, 10 ms, or 100 ms. Two variables are associated with a timer: - Current value: this 16-bit signed integer stores the amount of time counted by the timer. - Timer bit: this bit is set or cleared as a result of comparing the current and the preset value. The preset value is entered as part of the timer instruction. You access both of these variables by using the timer address (T + timer number). Access to either the timer bit or the current value is dependent on the instruction used: instructions with bit operands access the timer bit, while instructions with word operands access the current value. As shown in Figure 4-5, the 4 Normally Open Contact instruction accesses the timer bit, while the Move Word instruction accesses the current value of the timer. Format: T[timer number] T24 I2.1 MOV_W T3 Current Value Timer Bits EN T0 T0 T3 IN OUT VW200 T1 T1 T2 T2 15 (MSB) T3 0 (LSB) T3 Accesses the current value Accesses the timer bit Figure 4-5 Accessing the Timer Bit or the Current Value of a Timer Counter Memory Area: C The S7-200 provides three types of counters that count each low-to-high transition event on the counter input(s): one type counts up only, one type counts down only, and one type counts both up and down. Two variables are associated with a counter: - Current value: this 16-bit signed integer stores the accumulated count. - Counter bit: this bit is set or cleared as a result of comparing the current and the preset value. The preset value is entered as part of the counter instruction. You access both of these variables by using the counter address (C + counter number). Access to either the counter bit or the current value is dependent on the instruction used: instructions with bit operands access the counter bit, while instructions with word operands access the current value. As shown in Figure 4-6, the Normally Open Contact instruction accesses the counter bit, while the Move Word instruction accesses the current value of the counter. Format: C[counter number] C24 I2.1 MOV_W C3 Current Value Counter Bits EN C0 C0 C3 IN OUT VW200 C1 C1 C2 C2 15 (MSB) C3 0 (LSB) C3 Accesses the current value Accesses the counter bit Figure 4-6 Accessing the Counter Bit or the Current Value of a Counter 26
  9. PLC Concepts Chapter 4 High-Speed Counters: HC The high-speed counters count high-speed events independent of the CPU scan. High-speed counters have a signed, 32-bit integer counting value (or current value). To access the count value for the high-speed counter, you specify the address of the high-speed counter, using the memory type (HC) and the counter number (such as HC0). The current value of the high-speed counter is a read-only value and can be addressed only as a double word (32 bits). Format: HC[high- -speed counter number] HC1 Accumulators: AC The accumulators are read/write devices that can be used like memory. For example, you can use accumulators to pass parameters to and from subroutines and to store intermediate values used in a calculation. The S7-200 provides four 32-bit accumulators (AC0, AC1, AC2, and AC3). You can access 4 the data in the accumulators as bytes, words, or double words. The size of the data being accessed is determined by the instruction that is used to access the accumulator. As shown in Figure 4-7, you use the least significant 8 or 16 bits of the value that is stored in the accumulator to access the accumulator as bytes or words. To access the accumulator as a double word, you use all 32 bits. For information about how to use the accumulators within interrupt subroutines, refer to the Interrupt Instructions in Chapter 6. Format: AC[accumulator number] AC0 AC2 (accessed as a byte) MSB LSB 7 0 AC1 (accessed as a word) MSB LSB 15 8 7 0 Most significant Least significant Byte 1 Byte 0 AC3 (accessed as a double word) MSB LSB 31 24 23 16 15 8 7 0 Most significant Least significant Byte 3 Byte 2 Byte 1 Byte 0 Figure 4-7 Accessing the Accumulators 27
  10. S7-200 Programmable Controller System Manual Special Memory: SM The SM bits provide a means for communicating information between the CPU and your program. You can use these bits to select and control some of the special functions of the S7-200 CPU, such as: a bit that turns on for the first scan cycle, a bit that toggles at a fixed rate, or a bit that shows the status of math or operational instructions. (For more information about the SM bits, see Appendix D.) You can access the SM bits as bits, bytes, words, or double words: Bit: SM[byte address].[bit address] SM0.1 Byte, Word, or Double Word: SM[size][starting byte address] SMB86 Local Memory Area: L 4 The S7-200 provides 64 bytes of local memory of which 60 can be used as scratchpad memory or for passing formal parameters to subroutines. Tip If you are programming in either LAD or FBD, STEP 7--Micro/WIN reserves the last four bytes of local memory for its own use. If you program in STL, all 64 bytes of L memory are accessible, but it is recommended that you do not use the last four bytes of L memory. Local memory is similar to V memory with one major exception. V memory has a global scope while L memory has a local scope. The term global scope means that the same memory location can be accessed from any program entity (main program, subroutines, or interrupt routines). The term local scope means that the memory allocation is associated with a particular program entity. The S7-200 allocates 64 bytes of L memory for the main program, 64 bytes for each subroutine nesting level, and 64 bytes for interrupt routines. The allocation of L memory for the main program cannot be accessed from subroutines or from interrupt routines. A subroutine cannot access the L memory allocation of the main program, an interrupt routine, or another subroutine. Likewise, an interrupt routine cannot access the L memory allocation of the main program or of a subroutine. The allocation of L memory is made by the S7-200 on an as-needed basis. This means that while the main portion of the program is being executed, the L memory allocations for subroutines and interrupt routines do not exist. At the time that an interrupt occurs or a subroutine is called, local memory is allocated as required. The new allocation of L memory might reuse the same L memory locations of a different subroutine or interrupt routine. The L memory is not initialized by the S7-200 at the time of allocation and might contain any value. When you pass formal parameters in a subroutine call, the values of the parameters being passed are placed by the S7-200 in the appropriate L memory locations of the called subroutine. L memory locations, which do not receive a value as a result of the formal parameter passing step, will not be initialized and might contain any value at the time of allocation. Bit: L[byte address].[bit address] L0.0 Byte, Word, or Double Word: L[size] [starting byte address] LB33 28
  11. PLC Concepts Chapter 4 Analog Inputs: AI The S7-200 converts an analog value (such as temperature or voltage) into a word-length (16-bit) digital value. You access these values by the area identifier (AI), size of the data (W), and the starting byte address. Since analog inputs are words and always start on even-number bytes (such as 0, 2, or 4), you access them with even-number byte addresses (such as AIW0, AIW2, or AIW4). Analog input values are read-only values. Format: AIW[starting byte address] AIW4 Analog Outputs: AQ The S7-200 converts a word-length (16-bit) digital value into a current or voltage, proportional to the digital value (such as for a current or voltage). You write these values by the area identifier (AQ), size of the data (W), and the starting byte address. Since analog outputs are words and always start on 4 even-number bytes (such as 0, 2, or 4), you write them with even-number byte addresses (such as AQW0, AQW2, or AQW4). Analog output values are write-only values. Format: AQW[starting byte address] AQW4 Sequence Control Relay (SCR) Memory Area: S SCRs or S bits are used to organize machine operations or steps into equivalent program segments. SCRs allow logical segmentation of the control program. You can access the S bits as bits, bytes, words, or double words. Bit: S[byte address].[bit address] S3.1 Byte, Word, or Double Word: S[size][starting byte address] SB4 Format for Real Numbers Real (or floating-point) numbers are represented as 32-bit, single-precision numbers, whose format is described in the ANSI/IEEE 754--1985 standard. See Figure 4-8. Real numbers are accessed in double-word lengths. For the S7-200, floating point numbers are MSB LSB 31 30 23 22 0 accurate up to 6 decimal places. Therefore, you S Exponent Mantissa can specify a maximum of 6 decimal places when entering a floating-point constant. g gp Sign Figure 4-8 Format of a Real Number Accuracy when Calculating Real Numbers Calculations that involve a long series of values including very large and very small numbers can produce inaccurate results. This can occur if the numbers differ by 10 to the power of x, where x > 6. For example: 100 000 000 + 1 = 100 000 000 29
  12. S7-200 Programmable Controller System Manual Format for Strings A string is a sequence of characters, with each character being stored as a byte. The first byte of the string defines the length of the string, which is the number of characters. Figure 4-9 shows the format for a string. A string can have a length of 0 to 254 characters, plus the length byte, so the maximum length for a string is 255 bytes. Length Character 1 Character 2 Character 3 Character 4 ... Character 254 Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 254 4 Figure 4-9 Format for Strings Specifying a Constant Value for S7-200 Instructions You can use a constant value in many of the S7-200 instructions. Constants can be bytes, words, or double words. The S7-200 stores all constants as binary numbers, which can then be represented in decimal, hexadecimal, ASCII, or real number (floating point) formats. See Table 4-2. Table 4-2 Representation of Constant Values Representation Format Sample Decimal [decimal value] 20047 Hexadecimal 16#[hexadecimal value] 16#4E4F Binary 2#[binary number] 2#1010_0101_1010_0101 ASCII ’[ASCII text]’ ’Text goes between single quotes.’ Real ANSI/IEEE 754- -1985 +1.175495E- -38 (positive) - -1.175495E- -38 (negative) Tip The S7-200 CPU does not support “data typing” or data checking (such as specifying that the constant is stored as an integer, a signed integer, or a double integer). For example, an Add instruction can use the value in VW100 as a signed integer value, while an Exclusive Or instruction can use the same value in VW100 as an unsigned binary value. 30
  13. PLC Concepts Chapter 4 Addressing the Local and Expansion I/O The local I/O provided by the CPU provides a fixed set of I/O addresses. You can add I/O points to the S7-200 CPU by connecting expansion I/O modules to the right side of the CPU, forming an I/O chain. The addresses of the points of the module are determined by the type of I/O and the position of the module in the chain, with respect to the preceding input or output module of the same type. For example, an output module does not affect the addresses of the points on an input module, and vice versa. Likewise, analog modules do not affect the addressing of digital modules, and vice versa. Tip Digital expansion modules always reserve process-image register space in increments of eight bits (one byte). If a module does not provide a physical point for each bit of each reserved byte, these unused bits cannot be assigned to subsequent modules in the I/O chain. For input modules, the unused bits in reserved bytes are set to zero with each input update cycle. 4 Analog expansion modules are always allocated in increments of two points. If a module does not provide physical I/O for each of these points, these I/O points are lost and are not available for assignment to subsequent modules in the I/O chain. Figure 4-10 provides an example of the I/O numbering for a particular hardware configuration. The gaps in the addressing (shown as gray italic text) cannot be used by your program. 4 Analog In 4 Analog In CPU 224 4 In / 4 Out 8 In 8 Out 1 Analog Out 1 Analog Out I0.0 Q0.0 Module 0 Module 1 Module 2 Module 3 Module 4 I0.1 Q0.1 I2.0 Q2.0 I3.0 AIW0 AQW0 Q3.0 AIW8 AQW4 I0.2 Q0.2 I2.1 Q2.1 I3.1 AIW2 AQW2 Q3.1 AIW10 AQW6 I0.3 Q0.3 I2.2 Q2.2 I3.2 AIW4 Q3.2 AIW12 I0.4 Q0.4 I2.3 Q2.3 I3.3 AIW6 Q3.3 AIW14 I0.5 Q0.5 I2.4 Q2.4 I3.4 Q3.4 I0.6 Q0.6 I2.5 Q2.5 I3.5 Q3.5 I0.7 Q0.7 I2.6 Q2.6 I3.6 Q3.6 I1.0 Q1.0 I2.7 Q2.7 I3.7 Q3.7 I1.1 Q1.1 I1.2 Q1.2 Expansion I/O I1.3 Q1.3 I1.4 Q1.4 I1.5 Q1.5 I1.6 Q1.6 I1.7 Q1.7 Local I/O Figure 4-10 Sample I/O Addresses for Local and Expansion I/O (CPU 224) 31
  14. S7-200 Programmable Controller System Manual Using Pointers for Indirect Addressing of the S7-200 Memory Areas Indirect addressing uses a pointer to access the data in memory. Pointers are double word memory locations that contain the address of another memory location. You can only use V memory locations, L memory locations, or accumulator registers (AC1, AC2, AC3) as pointers. To create a pointer, you must use the Move Double Word instruction to move the address of the indirectly addressed memory location to the pointer location. Pointers can also be passed to a subroutine as a parameter. The S7-200 allows pointers to access the following memory areas: I, Q, V, M, S, T (current value only), and C (current value only). You cannot use indirect addressing to access an individual bit or to access AI, AQ, HC, SM, or L memory areas. 4 To indirectly access the data in a memory address, you create a pointer to that location by entering an ampersand (&) and the memory location to be addressed. The input operand of the instruction must be preceded with an ampersand (&) to signify that the address of a memory location, instead of its contents, is to be moved into the location identified in the output operand of the instruction (the pointer). Entering an asterisk (*) in front of an operand for an instruction specifies that the operand is a pointer. As shown in Figure 4-11, entering *AC1 specifies that AC1 is a pointer to the word-length value being referenced by the Move Word (MOVW) instruction. In this example, the values stored in both VB200 and VB201 are moved to accumulator AC0. AC1 V199 address of VW200 MOVD &VW200, AC1 V200 12 Creates the pointer by moving the address of VB200 (address of the initial byte for VW200) to AC1. V201 34 V202 56 AC0 1234 MOVW *AC1, AC0 V203 78 Moves the word value pointed to by AC1 to AC0. Figure 4-11 Creating and Using a Pointer As shown in Figure 4-12, you can change the value of a pointer. Since pointers are 32-bit values, use double-word instructions to modify pointer values. Simple mathematical operations, such as adding or incrementing, can be used to modify pointer values. AC1 V199 address of VW200 MOVD &VW200, AC1 V200 12 Creates the pointer by moving the address of VB200 (address of VW200’s initial byte) to AC1. V201 34 AC0 V202 56 1234 MOVW *AC1, AC0 Moves the word value pointed to by AC1 (VW200) to AC0. V203 78 AC1 V199 address of VW202 +D +2, AC1 V200 12 Adds 2 to the accumulator to point to the next word location. AC0 V201 34 MOVW *AC1, AC0 5678 V202 56 Moves the word value pointed to by AC1 (VW202) to AC0. V203 78 Figure 4-12 Modifying a Pointer Tip Remember to adjust for the size of the data that you are accessing: to access a byte, increment the pointer value by 1; to access a word or a current value for a timer or counter, add or increment the pointer value by 2; and to access a double word, add or increment the pointer value by 4. 32
  15. PLC Concepts Chapter 4 Sample Program for Using an Offset to Access Data in V Memory This example uses LD10 as a pointer to the address VB0. You then increment the pointer by an offset stored in VD1004. LD10 then points to another address in V memory (VB0 + offset). The value stored in the V memory address pointed to by LD10 is then copied to VB1900. By changing the value in VD1004, you can access any V memory location. Network 1 //How to use an offset to read the value of any VB location: // //1. Load the starting address of the V memory to a pointer. //2. Add the offset value to the pointer. //3. Copy the value from the V memory location (offset) to // VB1900. // LD MOVD SM0.0 &VB0, LD10 4 +D VD1004, LD10 MOVB *LD10, VB1900 Sample Program for Using a Pointer to Access Data in a Table This example uses LD14 as a pointer to a recipe stored in a table of recipes that begins at VB100. In this example, VW1008 stores the index to a specific recipe in the table. If each recipe in the table is 50 bytes long, you multiply the index by 50 to obtain the offset for the starting address of a specific recipe. By adding the offset to the pointer, you can access the individual recipe from the table. In this example, the recipe is copied to the 50 bytes that start at VB1500. Network 1 //How to transfer a recipe from a table of recipes: // - Each recipe is 50 bytes long. - // - The index parameter (VW1008) identifies the recipe - // to be loaded. // //1. Create a pointer to the starting address of the recipe table. //2. Convert the index of the recipe to a double-word value. //3. Multiply the offset to accommodate the size of each recipe. //4. Add the adjusted offset to the pointer. //5. Transfer the selected recipe to VB1500 through VB1549. LD SM0.0 MOVD &VB100, LD14 ITD VW1008, LD18 *D +50, LD18 +D LD18, LD14 BMB *LD14, VB1500, 50 33
  16. S7-200 Programmable Controller System Manual Understanding How the S7-200 Saves and Restores Data The S7-200 provides a variety of safeguards to ensure that your program, the program data, and the configuration data for your S7-200 are properly retained. The S7-200 provides a super capacitor that S7-200 CPU maintains the integrity of the RAM after power RAM: maintained by the super capacitor EEPROM: has been removed. Depending on the model of and the optional battery cartridge permanent storage the S7-200, the super capacitor can maintain the RAM for several days. Program block Program block System block The S7-200 provides an EEPROM to store System block 4 permanently all of your program, user-selected data areas, and the configuration data. V memory Data block M memory M memory The S7-200 also supports an optional battery (permanent area) cartridge that extends the amount of time that Timer and Counter Forced values current values the RAM can be maintained after power has been removed from the S7-200. The battery Forced values cartridge provides power only after the super capacitor has been drained. Figure 4-13 Storage Areas of the S7-200 CPU Downloading and Uploading the Elements of Your Project Your project consists of three elements: the Program block program block, the data block (optional), and System block Data block: up to the maximum the system block (optional). V memory range Figure 4-14 shows how a project is downloaded to the S7-200. S7-200 CPU When you download a project, the elements of Program block Program block a downloaded project are stored in the the System block Program block System block RAM area. The S7-200 also automatically Data block System block V memory copies the user program, data block, and the Data block system block to the EEPROM for permanent M memory storage. M memory (permanent area) Timer and Counter current values Forced values Forced values RAM EEPROM Figure 4-14 Downloading a Project to the S7-200 Figure 4-15 shows how a project is uploaded Program block from the S7-200. System block Data block When you upload a project to your computer, the S7-200 uploads the system block from the RAM and uploads the program block and the S7-200 CPU data block from the EEPROM. Program block System block Program block System block V memory Data block M memory M memory Timer and Counter (permanent area) current values Forced values Forced values RAM EEPROM Figure 4-15 Uploading a Project from the S7-200 34
  17. PLC Concepts Chapter 4 Saving the Retentive M Memory Area on Power Loss If you configured the first 14 bytes of S7-200 CPU bit memory (MB0 to MB13) to be retentive, these bytes are permanently saved to the Program block EEPROM in the event that the S7-200 loses Program block System block power. System block V memory As shown in Figure 4-16, the S7-200 moves Data block MB0 to MB13 these retentive areas of M memory to the M memory (if configured as M memory EEPROM. retentive) (permanent area) Timer and Counter Forced values 4 The default setting for the first 14 bytes of current values M memory is to be non-retentive. The default Forced values disables the save that normally occurs when you power off the S7-200. RAM EEPROM Figure 4-16 Saving the M Memory on Power Loss Restoring Data After Power On At power on, the S7-200 restores the program block and the system block from the EEPROM memory, as shown in Figure 4-17. Also at power on, the S7-200 checks the RAM to verify that the super capacitor successfully maintained the data stored in RAM memory. If the RAM was successfully maintained, the retentive areas of RAM are left unchanged. The retentive and non-retentive areas of V memory are restored from the corresponding data block in the EEPROM. If the contents of the RAM were not maintained (such as after an extended power failure), the S7-200 clears the RAM (including both the retentive and non-retentive ranges) and sets the Retentive Data Lost memory bit (SM0.2) for the first scan cycle following power on, and then copies the data stored in the EEPROM to the RAM. S7-200 CPU Program block Program block If the program data was successfully System block Program block System block maintained, copies the data block to the V memory System block non-retentive areas of V memory in RAM. Data block Data block M memory M memory Forced values M memory If the program data was NOT maintained, (permanent area) Timer and Counter copies the data block and M memory Forced values (MB0 to MB13), if defined as retentive. current values Sets all other non-retentive areas Forced values of memory to 0 RAM EEPROM Figure 4-17 Restoring Data after Power On 35
  18. S7-200 Programmable Controller System Manual Storing Your Program on a Memory Cartridge The S7-200 supports an optional memory cartridge that provides a portable EEPROM storage for your program. The S7-200 stores the following elements on the memory cartridge: the program block, the data block, the system block, and the forced values. You can copy your program to the memory cartridge from the RAM only when the S7-200 is powered on and in STOP mode and the memory cartridge is installed. You can install or remove the memory cartridge while the S7-200 is powered on. Caution 4 Electrostatic discharge can damage the memory cartridge or the receptacle on the S7-200 CPU. Make contact with a grounded conductive pad and/or wear a grounded wrist strap when you handle the cartridge. Store the cartridge in a conductive container. To install the memory cartridge, remove the plastic slot cover from the S7-200 CPU and insert the memory cartridge in the slot. The memory cartridge is keyed for proper installation. Copying Your Program to the Memory Cartridge After installing the memory cartridge, use the following procedure to copy the program: System block Memory Program block Cartridge Data block Forced values 1. Put the S7-200 CPU in STOP mode. 2. If the program has not already been S7-200 CPU downloaded to the S7-200, download the program. Program block Program block 3. Select the PLC > Program Memory System block System block Cartridge menu command to copy the V memory Data block program to the memory cartridge. Figure 4-18 shows the elements of the M memory M memory (permanent area) CPU memory that are stored on the Timer and Counter memory cartridge. current values Forced values 4. Optional: Remove the memory cartridge Forced values and replace the cover on the S7-200. RAM EEPROM Figure 4-18 Copying to a Memory Cartridge Restoring the Program from a Memory Cartridge To transfer the program from a memory cartridge to the S7-200, you must cycle the power to the S7-200 with the memory cartridge installed. Notice Powering on an S7-200 CPU with a blank memory cartridge or a memory cartridge that was programmed by a different model of S7-200 CPU could cause an error. Memory cartridges that were programmed by a lower model number CPU can be read by a higher model number CPU. However, the opposite is not true. For example, memory cartridges that were programmed by a CPU 221 or CPU 222 can be read by a CPU 224, but memory cartridges that were programmed by a CPU 224 are rejected by a CPU 221 or CPU 222. Remove the memory cartridge and turn the power on for the S7-200. After power on, the memory cartridge can then be inserted and reprogrammed, if required. 36
  19. PLC Concepts Chapter 4 As shown in Figure 4-19, the S7-200 performs Program block the following tasks after you cycle power with System block Memory the memory cartridge installed: Data block Cartridge Forced values 1. If the contents of the memory cartridge differ from the contents of the EEPROM, S7-200 CPU the S7-200 clears the RAM. Program block Program block System block 2. The S7-200 copies the contents of the Program block System block memory cartridge to the RAM. V memory System block Data block Data block 3. The S7-200 copies the program block, Forced values M memory M memory the system block, and the data block to the EEPROM. Timer and Counter current values All other areas of memory are (permanent area) Forced values 4 set to 0. Forced values RAM EEPROM Figure 4-19 Restoring from a Memory Cartridge Selecting the Operating Mode for the S7-200 CPU The S7-200 has two modes of operation: STOP mode and RUN mode. The status LED on the front of the CPU indicates the current mode of operation. In STOP mode, the S7-200 is not executing the program, and you can download a program or the CPU configuration. In RUN mode, the S7-200 is running the program. - The S7-200 provides a mode switch for changing the mode of operation. You can use the mode switch (located under the front access door of the S7-200) to manually select the operating mode: setting the mode switch to STOP mode stops the execution of the program; setting the mode switch to RUN mode starts the execution of the program; and setting the mode switch to TERM (terminal) mode does not change the operating mode. If a power cycle occurs when the mode switch is set to either STOP or TERM, the S7-200 goes automatically to STOP mode when power is restored. If a power cycle occurs when the mode switch is set to RUN, the S7-200 goes to RUN mode when power is restored. - STEP 7--Micro/WIN allows you to change the operating mode of the online S7-200. To enable the software to change the operating mode, you must manually set the mode switch on the S7-200 to either TERM or RUN. You can use the PLC > STOP or PLC > RUN menu commands or the associated buttons on the toolbar to change the operating mode. - You can insert the STOP instruction in your program to change the S7-200 to STOP mode. This allows you to halt the execution of your program based on the program logic. For more information about the STOP instruction, see Chapter 6. 37
  20. S7-200 Programmable Controller System Manual Using Your Program to Save V Memory to the EEPROM You can save a value (byte, word, or double word) stored in any location of the V memory area to the EEPROM. A Save-to-EEPROM operation typically increases the scan time by a maximum of 5 ms. The value written by the Save operation overwrites any previous value stored in the V memory area of the EEPROM. The Save-to-EEPROM operation does not update the data in the memory cartridge. Tip Since the number of Save operations to the EEPROM is limited (100,000 minimum, and 1,000,000 4 typical), you should ensure that only necessary values are saved. Otherwise, the EEPROM can wear out and the CPU can fail. Typically, you should perform Save operations at the occurrence of specific events that occur rather infrequently. For example, if the scan time of the S7-200 is 50 ms and a value was saved once per scan, the EEPROM would last a minimum of 5,000 seconds, which is less than an hour and a half. On the other hand, if a value were saved once an hour, the EEPROM would last a minimum of 11 years. Copying V Memory to the EEPROM Special Memory Byte 31 (SMB31) commands the S7-200 to copy a value in V memory to the V memory area of the EEPROM. Special Memory Word 32 (SMW32) stores the address location of the value that is to be copied. Figure 4-20 shows the format of SMB31 and SMW32. Use the following steps to program the S7-200 to save or SMB31 Size of value to be 7 0 write a specific value in V memory: saved: sv 0 0 0 0 0 s1 s0 00 - byte - 01 - byte - 1. Load the V memory address of the value to be 10 - word - saved in SMW32. Save to EEPROM: 11 - double word - 0 = No 2. Load the size of the data in SM31.0 and SM31.1, as 1 = Yes The CPU resets shown in Figure 4-20. SM31.7 after each save operation. 3. Set SM31.7 to 1. SMW32 At the end of every scan cycle, the S7-200 checks 15 V memory address 0 SM31.7; if SM31.7 equals 1, the specified value is saved Specify the V memory address as an offset from V0. to the EEPROM. The operation is complete when the S7-200 S7 200 resets SM31.7 to 0. t SM31 7 t 0 Figure 4-20 SMB31 and SMW32 Do not change the value in V memory until the save operation is complete. Sample Program: Copying V Memory to the EEPROM This example transfers VB100 to the EEPROM. On a rising edge of I0.0, if another transfer is not in progress, it loads the address of the V memory location to be transferred to SMW32. It selects the amount of V memory to transfer (1=Byte; 2=Word; 3=Double Word or Real). It then sets SM31.7 to have the S7-200 transfer the data at the end of the scan. The S7-200 automatically resets SM31.7 when the transfer is complete. Network 1 //Transfer a V memory location (VB100) //to the EEPROM LD I0.0 EU AN SM31.7 MOVW +100, SMW32 MOVB 1, SMB31 S SM31.7, 1 38
Đồng bộ tài khoản