How can I arrest the implementation of STEP7 which can be resumed?

wqtony2004

Member
Join Date
Apr 2015
Location
melbourne
Posts
13
Hi, guys, I want to find a instruction which can arrest the implementation when I push a button and resume the the implementation by pushing another button, anyone can tell me which instruction I should use?

I am using the LAD.

Thanks for your help in advance!
 
Could you elaborate a little bit?

You want to run a function if the button is pushed and quit running it when another is pushed?

If so, you use a SR flipflop with the two buttons.
 
Could you elaborate a little bit?

You want to run a function if the button is pushed and quit running it when another is pushed?

If so, you use a SR flipflop with the two buttons.

In fact, what I want is that when I push a button, the whole program hold still, just like the time is freeze; when I push another button, the whole process of program resume (go on implementing the previous directive). I am the new leaner, and I spend so much time on finding suitable function in LAD of STEP7, plz help me out, thanks a lot!
 
You appear to laboring under a common beginner's misconception. You seem to think that when the machine is doing nothing, the PLC has stopped. That's incorrect. Even when the machine is idle, the PLC is still running its program. It is simply not turning anything on or off.
You'll have to program a Boolean instruction that, when properly included in the logic, will pause a sequence of operations and allow the sequence to resume when given the proper command.
 
That was what I was going to say :).

You have to remember that the function you are using is/ should be cycling between 0 and 100 ms. So at least 10 times a second.

Your code will be executed this many times. If you have a timer for example, the code will execute, look at the status for the timer and if it is not done yet, it will not execute whatever that timer is controlling.

So you should have:

1. A bit that starts the function
2. In between every step of your program that you want to control, the same bit that will make it jump to the end of that function.
3. A status integer, which will "remember" what particular part of the program you are at.

If you are beginning, it would be smart to put every separate part in its own function(block) and use the integer + the start bool to start every function sequentially.

You CANNOT stop the program from running. Imagine it did, how would you ever evaluate the status of your start or stop button?
 
You appear to laboring under a common beginner's misconception. You seem to think that when the machine is doing nothing, the PLC has stopped. That's incorrect. Even when the machine is idle, the PLC is still running its program. It is simply not turning anything on or off.
You'll have to program a Boolean instruction that, when properly included in the logic, will pause a sequence of operations and allow the sequence to resume when given the proper command.

i don't intend to turn PLC off, i just want to know whether there is a function or directive or approach to let PLC hold on to the current step or remember the current condition of implementation, coz there maybe a complex program is implementing, it seems impossible to record all the progress when i push the pause button, and preset those values back to all those component when i push go-on button, right? though i can insert some boolean parameter to every step of program, it will be too complicated.
 
That was what I was going to say :).

You have to remember that the function you are using is/ should be cycling between 0 and 100 ms. So at least 10 times a second.

Your code will be executed this many times. If you have a timer for example, the code will execute, look at the status for the timer and if it is not done yet, it will not execute whatever that timer is controlling.

So you should have:

1. A bit that starts the function
2. In between every step of your program that you want to control, the same bit that will make it jump to the end of that function.
3. A status integer, which will "remember" what particular part of the program you are at.

If you are beginning, it would be smart to put every separate part in its own function(block) and use the integer + the start bool to start every function sequentially.

You CANNOT stop the program from running. Imagine it did, how would you ever evaluate the status of your start or stop button?

sorry, i cannot quite follow your idea, why are you mentioning the cycling period?

regarding the 3 steps you offer. do you meaning to insert some boolean bits to every step i want control is the only way to fulfill my intention? moreover, what if i push the pause button when there is a timer is implementing, i have to scan the current value of timer to collect all the information in order to restore my program when i want?it would be too complicated, wouldn't it?

last, you mentioned using the separate function (block), what do you mean by that, do you mean separate network line? and sorry to bother you so much
 

Similar Topics

Hi, I have PLC S7-1200 and switch XC-208 and Iam trying to implement this SNMP library: SIOS I am not sure, what I am doing wrong, but there is...
Replies
3
Views
115
I am trying to implement a profibus network and am a newbie in the automation and communication industry. what are the components required for the...
Replies
1
Views
96
Hi, Can anyone help me on this? I want to implement a "screen lock" (HMI is KTP1200 Basic). e.g. if the person who's logged in, leaves the...
Replies
10
Views
660
I have a problem where the total drop length of a devicenet network is too long (39m). To prevent that, I am thinking of moving 3 flowmeters from...
Replies
4
Views
1,650
Hello Forum, Looking for ideas of what can be the most practical implementation to a machine to add a feature of automated setup. I explain...
Replies
10
Views
4,490
Back
Top Bottom