10/14/2011 7:35 PM | |
Joined: 1/28/2009 Last visit: 9/10/2024 Posts: 6849 Rating: (1365) |
Dear jpapu9 , Check the followings as a simple bit instruction in SCL. [code]ORGANIZATION_BLOCK OB1 VAR_TEMP // Reserved info : ARRAY[0..19] OF BYTE; // Temporary Variables END_VAR //Assignment Q0.0:=I0.0; /////////////FLIPFLOP///////////////////// IF I0.1 OR Q0.1 THEN Q0.1:=1; END_IF; IF I0.2 THEN Q0.1:=0; END_IF; ///////////////////////////////////////////// ; END_ORGANIZATION_BLOCK[/code] Also check there manuals for more information: S7-SCL V5.3 for S7-300/400 Getting Started S7-SCL V5.3 for S7-300/400 Structured Control Language (SCL V4, V5.0) for S7-300/S7-400 Programming Best regards, |
Last edited by: hdhosseini at: 10/14/2011 8:02 PM |
|
10/14/2011 11:21 PM | |
Posts: 50 Rating: (2) |
Hi hdhosseine, Thank you for your replay. I tried your suggestion but it did not work. Please see the following |
10/15/2011 12:39 AM | |
Joined: 1/28/2009 Last visit: 9/10/2024 Posts: 6849 Rating: (1365)
|
Dear jpapu9,
OK, you want to copy the content of a binary signal to an output.with value assignment, a variable gets the content of another variable or of a calculation or logic expression. On the lesft side the operator of an assignment ":=" ,the target variable written and in the right side the source or the calculation.If you want to copy I0.0 to Q0.0 you can simply write "Q0.0:=I0.0;" in SCL.Also possible to transfer bytes ,words and etc ("QB0:=IB0;"). Also check chapter 14 of THIS for more complex issues. And finally, it is not possible to track when Q0.1 is ON.CPU processes the codes very fast and it is not possible to track the ON status of Q0.1 in the following codes. This is not a good example as a starting point. [code]ORGANIZATION_BLOCK OB1 VAR_TEMP // Reserved info : ARRAY[0..19] OF BYTE; END_VAR //Assignment FOR i:=0 TO 7 BY 1 DO IF i<3 THEN q0.1:=1; ELSE q0.1:=0; END_IF; END_FOR; ; END_ORGANIZATION_BLOCK[/code] You can refer to this book and its examples here as a good reference from SIEMENS. Best regards |
10/15/2011 12:46 PM | |
Posts: 50 Rating: (2) |
Hi hdhosseini, Thank you for your reply and explanations. Please accept my apology for my beginner questions, I have downloading the manuals and have read through some of them, but I find things that don’t make sense. Example, in the SCL Getting Started manual they state the Digital Input Module (I have a DI 32) is assigned the address of i0, i1, i2 and i3 (see attached). They also state that the Digital Output Module (I have a DO 32) occupies byte 4, 5, 6 and 7 (see attached). They do not state that the Output Module is Q but I remember reading it in another one of the manuals. So I am assuming to access the output module I would have to use q4, q5, q6 and q7. On the rack I am using I have all the inputs tied to toggle switches which are either open or grounded. All the outputs are attached through a resistor to the Anode of a LED and the Cathode of the LED is tied to ground. In my program I create a for loop and inside the for loop I execute the command Q4.0 := i0.0 . I use the debugger to single step through the for loop and toggle the switch On / Off. As I step through the loop the LED turns ON / OFF to match the state of the switch. For the next test I changed the for loop as shown below. I used the debugger to signal step through the for loop but I did not see the LED turn ON / OFF. The LED always remained OFF. I do not understand why this is happening. FOR LCV := 0 TO 7 BY 1 DO IF LCV < 3 THEN Q4.0 := 1; ELSE Q4.0:=0; END_FOR; AttachmentSCL QUESTION.pdf (220 Downloads) |
10/16/2011 3:32 PM | |
Joined: 1/28/2009 Last visit: 9/10/2024 Posts: 6849 Rating: (1365)
|
Dear jpapu9 T make Pulse you have options discussed here: Self reset timer, or blinking And if you still insist on using SCL,try these codes in one of OB3X.See the attachment for more information.Check OB32 and write this codes: [code]//SCL CODES IN OB32 Q4.0:= NOT (Q4.0);[/code] Best regards AttachmentOB3X.pdf (216 Downloads) |
10/16/2011 10:20 PM | |
Joined: 1/28/2009 Last visit: 9/10/2024 Posts: 6849 Rating: (1365)
|
Dear jpapu9 , If you are new to STEP7 you can gain basic information about the software and alittle about hardware here (Working with STEP 7 Getting Started). Before testing you program, you can check the result on PLCSIM and after getting result test i on real hardware. To be sure about the hardware and electrical connection between switches and DI cards use monitor/modify capability in Hardware configuration.You can monitor binary status of all digital input signal(Absolute addresses) corresponding to each switch.Also you can activate digital outputs on the DO cards and checking the status in monitor/modify table or LEDs on the card. If any mismatch happens , check the wiring.Finally, after all these test, you can test your program on a real hardware. Best regards |
Follow us on