Control IO Warehouse

William Schwab
8 Jul 202147:08

Summary

TLDRIn this instructional video, Will demonstrates the setup and control of an automated warehouse using Factory IO software. He guides viewers through the process of organizing and storing pallets on a conveyor system, utilizing sensors and actuators. The video covers the use of edit mode, run mode, and various control signals for the automated system. Will also explains the programming logic using Control IO, including the use of timers, flip flops, and function block diagrams for efficient warehouse automation.

Takeaways

  • 🏭 The video is a tutorial on an automated warehouse system using Factor IO, which stores pallets in structured pads.
  • πŸ”’ The warehouse has a capacity of nine pallets per row, with additional rows for more storage, starting with pad one behind the control panel.
  • πŸ“Ή The video demonstrates the use of edit mode in Factor IO to arrange conveyors and other parts without making changes to the existing setup.
  • πŸ“ˆ The presenter explains the use of run mode to observe the automated processes, including the forced activation of emitter and remover systems.
  • πŸ”΄ The importance of signals in controlling the automated system is highlighted, with the use of sensors and actuators to manage the flow of pallets.
  • ⏸️ The video shows how to pause, reset, and adjust the speed of the simulation for better control and observation of the system's operation.
  • πŸ› οΈ The tutorial includes a step-by-step guide on programming the automated warehouse, emphasizing the use of signals and timing diagrams.
  • πŸ”„ The process involves moving pallets to specific positions using conveyors, sensors, and actuators, with careful control of the forklift mechanism.
  • πŸ”’ The use of a counter to keep track of the loading positions in the warehouse is explained, with incrementation for each new pallet placed.
  • πŸ”§ The video discusses troubleshooting and adjusting the logic in Control IO, including the use of RS flip-flops and timers for signal management.
  • πŸ”„ The final program logic is demonstrated, showing how to control the automated warehouse system using function block diagrams in Control IO.

Q & A

  • What is the main purpose of the automated warehouse system discussed in the video?

    -The automated warehouse system is designed to store pallets in a structured manner, with each pallet placed on designated pads, and it is controlled using the Factory IO software.

  • How many pads are there per row in the automated warehouse system?

    -There are nine pads per row in the automated warehouse system.

  • What is the significance of the 'run mode' in Factory IO software?

    -The 'run mode' in Factory IO software allows the simulation to operate, demonstrating how the automated warehouse functions with the configured settings and components.

  • What does the 'remover' in the automated warehouse system do?

    -The 'remover' in the system is responsible for the removal process of the pallets from the warehouse structure, and it is indicated by a red arrow when active.

  • How can the simulation speed be adjusted in Factory IO software?

    -The simulation speed in Factory IO can be adjusted to normal speed, half speed, or one-tenth speed, allowing for better control and observation as the system approaches sensors or performs actions.

  • What is the function of the '30-day free trial' mentioned in the video?

    -The '30-day free trial' is an offer for users to try out Factory IO software, allowing them to explore and utilize its features without cost for an initial period.

  • What is the role of the 'timing diagram' in programming the automated warehouse system?

    -The 'timing diagram' is used to layout the sequence of signals and the actuators they influence, which helps in visualizing and programming the control logic for the automated warehouse system.

  • What does the 'AT Load' sensor indicate in the automated warehouse system?

    -The 'AT Load' sensor indicates the position where the pallet is to be lifted onto the conveyor system, changing from gold to white to signal the system to initiate the lifting action.

  • How does the 'forks left' signal function in the automated warehouse system?

    -The 'forks left' signal controls the movement of the forklift mechanism to slide under the pallet, preparing it for lifting and transport within the warehouse.

  • What is the purpose of the 'AT Middle' signal in the automated warehouse system?

    -The 'AT Middle' signal ensures that the forklift mechanism is in the correct central position before moving the pallet to the designated storage location within the warehouse structure.

  • What is the significance of the 'Target Position' in the automated warehouse system?

    -The 'Target Position' determines the specific location within the warehouse structure where the pallet is to be moved and placed, with the system incrementing this position as it fills up slots.

  • How does the 'Next Box' signal function in the control logic of the automated warehouse system?

    -The 'Next Box' signal serves as a trigger to increment the position counter, indicating that the system is ready to process the next pallet and move it to the next available storage position.

  • What is the role of the 'Mode Counter' in the automated warehouse system?

    -The 'Mode Counter' keeps track of the current state or mode of operation in the automated warehouse system, such as loading pallets into the structure or returning to the home position.

  • What is the purpose of using RS flip-flops in the control logic of the automated warehouse system?

    -RS flip-flops are used in the control logic to maintain the state of signals, turning the output high when the set input is high and turning it low when the reset input is high, which helps in managing the on/off states of various components in the system.

Outlines

00:00

πŸ€– Introduction to Automated Warehouse Simulation

Will introduces a video tutorial on an automated warehouse system using Factory IO software. The automated warehouse is composed of a structure that stores pallets on individual pads, with nine pads per row. The video will demonstrate the setup and operation of the warehouse, including the use of conveyors and sensors. Will mentions the software's features like edit mode, run mode, and the ability to control signals for the emitter and remover. He also highlights the software's 30-day free trial and the capability to step through programs for better understanding and control.

05:00

πŸ”§ Configuring and Controlling Conveyors and Sensors

The video script explains how to configure and control the automated warehouse's conveyors and sensors. Will demonstrates how to use the simulation's pause and reset features, as well as adjusting the speed of the system. He details the process of moving a pallet using the entry and load conveyors, explaining the significance of sensors and actuators, such as the retro reflector and the emitter. The script also covers the use of the 'at load' sensor to determine when the pallet is in the correct position for loading.

10:01

πŸ“š Automated Pallet Handling and Storage

Will continues the tutorial by showing how to handle and store pallets in the automated warehouse. He describes the use of a device similar to a forklift to move pallets to the shelving area. The script explains the process of using sensors to detect the pallet's position and the use of signals to control the movement of the forks. It also covers the importance of the 'at middle' signal for correct positioning before placing the pallet on the structure.

15:05

πŸ”„ Incrementing Storage Positions and Returning Home

The script outlines the process of incrementing storage positions as pallets are loaded into the warehouse. It explains the use of a counter to keep track of the positions and the need to return the system to a 'home' position after loading pallets into their slots. The video also discusses the signals for moving the system in the X and Z directions and the logic behind returning the system to the home position.

20:05

πŸ› οΈ Setting Up the Control Logic for the Automated System

Will presents the logic for controlling the automated warehouse system using Control IO. The script details the use of RS flip-flops and SR flip-flops in creating the start and stop logic for the system. It also covers the use of signals and timers to ensure the correct sequence of operations, such as the emitter signal, the entry conveyor, and the load conveyor.

25:06

πŸ”„ Advanced Control Logic and Signal Timing

The script delves into the advanced control logic required for the automated system, including the use of timers and logic gates to manage the movement of the forks and the pallet's position. It explains the use of a counter to keep track of the load position and the logic for moving the system to the correct position in the rack. The video also addresses the challenges of ensuring the correct timing for signals and the use of assigned bits to manage the source position.

30:08

πŸ”„ Refining Control Logic for Home Position and Fork Movement

Will refines the control logic for returning the system to the home position and moving the forks to the correct position. The script explains the use of AND gates and the importance of the 'at middle' signal for mode three operations. It also covers the logic for setting the target position and the use of timers to ensure the system has enough time to switch to the load position.

35:10

πŸ”„ Finalizing Control Logic and Testing the System

The script finalizes the control logic for the automated system, including the logic for moving the forks to the right position and setting the system down in place. It explains the use of a mode counter to determine the current mode of operation and the logic for the 'next box' signal to control the sequence of loading boxes. The video includes testing the system at normal speed and troubleshooting a mistake with the 'next box' signal.

40:13

πŸ”„ Completing the Automated Warehouse Cycle

Will concludes the tutorial by demonstrating the complete cycle of the automated warehouse system. The script shows the system filling up the first row of the rack and preparing to move to the second row. It highlights the importance of incrementing the position counter and the logic for loading boxes in a specific order. The video also discusses the possibility of loading boxes based on their weight or type and the need for additional logic and sensors to manage this.

45:15

πŸ› οΈ Reflecting on the Automated System's Performance

In the final part of the video script, Will reflects on the performance of the automated system and the challenges faced during the setup. He discusses the use of time delays to ensure the system works correctly and encourages viewers to experiment with the logic to potentially eliminate the need for these delays. The script also invites viewers to consider different loading strategies and the potential use of sensors to identify the type of boxes being loaded.

Mindmap

Keywords

πŸ’‘Automated Warehouse

An automated warehouse is a system that uses technology to control and manage the storage and retrieval of goods with minimal manual intervention. In the video, the automated warehouse is depicted as a structure that stores pallets on designated pads, showcasing the efficiency of automated systems in logistics and storage management.

πŸ’‘Control Panel

A control panel is an interface used to operate or manage a system. In the context of the video, the control panel is the primary interface for the automated warehouse, allowing the operator to control various functions such as starting and stopping the system, as well as adjusting the speed of the conveyor belts.

πŸ’‘Conveyors

Conveyors are mechanical devices used to transport goods or materials from one place to another within a production or distribution process. In the video, conveyors are integral to the automated warehouse, moving pallets to and from storage positions and playing a key role in the automation process.

πŸ’‘Sensors

Sensors are devices that detect and respond to some type of input from the environment. In the video, sensors such as the 'at entry' and 'at load' sensors are used to detect the presence of pallets and trigger actions within the automated system, ensuring the correct positioning and movement of pallets.

πŸ’‘Actuators

Actuators are components that are responsible for moving or controlling a mechanism or system. The video script mentions actuators such as the entry conveyor and load conveyor, which are activated to move pallets within the automated warehouse, demonstrating how actuators facilitate the physical movement in automated systems.

πŸ’‘Simulation

A simulation is a virtual representation of a system or process. The video discusses the use of a simulation mode to test and observe the automated warehouse's operation, allowing the viewer to understand the system's behavior before implementing it in a real-world scenario.

πŸ’‘PLC (Programmable Logic Controller)

A Programmable Logic Controller is a digital computer used for automation of industrial processes. In the video, the PLC is implied to be the brain behind the automated warehouse, controlling the logic and timing of the system's operations, such as the movement of pallets to specific storage positions.

πŸ’‘Signal

In the context of automation, a signal is an electrical or optical representation of information that triggers a response in a system. The video script frequently refers to signals controlling the state of sensors and actuators, such as turning on and off the conveyors or detecting the presence of a pallet.

πŸ’‘Retro Reflector

A retro reflector is a device that reflects light back towards its source with minimal scattering. In the video, the retro reflector is used in conjunction with a sensor to detect the presence of a pallet by reflecting a signal back to the sensor, indicating that a pallet is in position.

πŸ’‘Control IO

Control IO refers to the input and output interfaces of a control system. The video script discusses the use of Control IO for programming the automated warehouse, emphasizing the importance of understanding the signals and actuators involved in the system's operation.

πŸ’‘Logic Gates

Logic gates are basic units of digital logic circuits that represent Boolean functions. The video script mentions logic gates such as AND, OR, and NOT gates, which are used to create complex logical operations within the automated warehouse's control system, determining the sequence of actions based on input signals.

Highlights

Introduction to the automated warehouse and its structure, which stores pallets in a specific arrangement.

Explanation of how the control panel interacts with different rows and columns in the warehouse.

Description of the initial setup and run mode for the automated warehouse in Factorio.

Details about how the emitter and remover work in the system, including visual indicators.

Steps to control the simulation speed and pause the system to observe signal behavior.

Demonstration of how to reset and manipulate the system using the control panel and sensors.

Explanation of the different conveyors (entry and load conveyors) and their roles in the warehouse.

Illustration of the forklift-like device that moves pallets within the warehouse, including its sensors and positions.

Detailed steps to move the pallet to the shelving using the forks, including lifting and positioning.

Description of how to program the system to handle pallet positions and movements automatically.

Explanation of the RS and SR flip-flops used in the control logic and their differences.

Overview of the start-stop logic and how to set up signals to control the warehouse automation.

Discussion on how to manage the emitter, conveyors, and forks using the control logic.

Insights into using timers and delays to ensure proper signal transitions and movements in the system.

Final demonstration of the complete control logic, highlighting the importance of accurate programming and troubleshooting.

Transcripts

play00:00

hi this is will and today we're going to

play00:03

take a little video of

play00:04

this automated warehouse and the

play00:06

automated warehouse

play00:08

is just a regular this is from the

play00:10

regular scenes from factor io

play00:12

um this is is it's a

play00:16

structure that stores pallets in each of

play00:18

these

play00:19

little little pads i guess

play00:23

and the first pad is right here right

play00:26

behind the control panel then the second

play00:28

third fourth fifth sixth it goes up to

play00:31

nine per

play00:32

uh row and then over here in the second

play00:35

column

play00:36

i guess second row up is number ten

play00:40

and it's a fairly nice

play00:44

challenging little project now um

play00:48

we start off when we get into the scenes

play00:51

in the uh

play00:51

edit mode and you can see that you have

play00:53

these palettes for if you wanted to

play00:55

change things around you can put in

play00:57

different

play00:57

parts of conveyors and whatnot we're not

play00:59

going to do that we're just going to

play01:01

go with what we have so we're going to

play01:03

put in the run mode

play01:06

now you can see as soon as that appears

play01:09

we see a box

play01:10

and the reason we see that is factor i o

play01:14

it always forces the emitter and the

play01:17

remover

play01:18

on and you can see the removers on

play01:20

because it's

play01:21

kind of lit up red arrow and we can show

play01:24

that here but

play01:26

if we dock all the tags

play01:29

you can see that the emitter is forced

play01:31

on

play01:32

and the remover is forced on so if i

play01:35

release it

play01:37

and we're looking at the remover here if

play01:39

i release it by

play01:41

clicking on what these glasses are but

play01:43

for the

play01:44

remover you'll see this turn off

play01:48

and see how that turns off and

play01:51

we can do the same thing with the

play01:54

emitter

play01:57

so normally i like to do the programs

play01:59

where i control

play02:01

all the signals so we don't really need

play02:04

that

play02:04

now i'm just going to quickly say here

play02:08

this is where we can pause the

play02:10

simulation so we can stop it at certain

play02:12

points and look at

play02:14

how the signals are behaving we can

play02:17

reset it so if i reset it the box will

play02:19

disappear

play02:20

or the pallet will disappear and this

play02:23

last thing is where we can slow down the

play02:25

speed of the system so this would be

play02:28

normal speed here

play02:30

then we can go at half speed and then we

play02:32

can go at 10th

play02:33

speed one tenth of the speed and that's

play02:36

just so you can

play02:37

get better control as it's approaching

play02:40

sensors

play02:41

and you know the thing that i think is

play02:45

really valuable about factory i o well

play02:47

the two things are

play02:48

you get a 30-day free trial if you want

play02:52

to try it out it's great

play02:55

you can also step through the program

play02:57

and you can see

play02:58

what signals you need to control and

play03:00

then you can write the program

play03:02

so you can pretty much and we'll kind of

play03:04

show this is

play03:06

you can lay out the timing diagram for

play03:10

what the signals

play03:14

happen and what actuators they influence

play03:17

and then you write the program so

play03:20

to do this the first thing we're going

play03:22

to do

play03:26

well let me show you one thing first

play03:29

so right here this ad entry

play03:33

and the ad entry is here now all these

play03:36

orange circles with the circle inside

play03:39

the circle those are our sensors

play03:41

and the fact that it's lit up where some

play03:43

of these aren't

play03:45

means that the signal is high and that's

play03:47

also by the gold here

play03:50

and if you hover on it it'll say it's a

play03:52

sensor

play03:53

now if i hover on the entry conveyor it

play03:55

tells you it's an actuator

play03:57

and this one is high so it's receiving a

play04:01

signal it's because it's a retro

play04:02

reflector and so the sensor is sending

play04:05

out a signal which bounces off this

play04:07

optical mirror and then comes back to

play04:09

the sensor that's why it's turned on

play04:11

now the conveyors are turned off so

play04:14

that's why they're white

play04:16

now if i put

play04:19

an emitter in here by forcing it on and

play04:22

forcing it on

play04:23

is when we click on the little

play04:28

actuator symbol that's associated with

play04:30

the emitter

play04:31

so i'll just click on that you can see

play04:33

that the add entry went from

play04:35

gold to white that's because the sensor

play04:37

is now blocked

play04:39

so the first thing we can do

play04:44

well we can release this because we

play04:45

don't want boxes coming

play04:47

after each other you know one after

play04:49

another after another

play04:50

but we can see that the actuator is the

play04:53

entry conveyor

play04:54

and then we see a load conveyor and

play04:56

those are the first two

play04:57

that we're going to do so to try to get

play05:00

it right i'm also going to slow down the

play05:02

speed to half speed

play05:04

and what i want to do is move the pallet

play05:09

down to about this point here so we've

play05:11

got

play05:12

the entry conveyor which are these full

play05:14

length rollers and then we have the load

play05:16

conveyor which are these little

play05:18

pint-sized rollers on either side of the

play05:20

conveyor

play05:21

so i want to stop it right about here

play05:23

then i'm going to turn on the load

play05:24

conveyor

play05:26

and let's try to get that and when i

play05:29

stop it i'm going to stop it with the

play05:30

pause

play05:31

so i'm just going to click on this

play05:32

positive simulation

play05:35

and so i'm going to force on the entry

play05:38

conveyor

play05:44

okay and stopped it a little late but

play05:46

that's okay

play05:48

um so now what i'm going to do is i'm

play05:50

going to turn on the load conveyor

play05:53

and i'm going to keep it on until i see

play05:56

this at load now the at load is this is

play05:58

the sensor this is the retro reflector

play06:01

and i'm going to um

play06:06

turn on the load conveyor until i see

play06:09

this go from

play06:10

gold to white and then i'm going to

play06:13

pause it again

play06:15

so here's my load conveyor now i'm going

play06:19

to unpause it

play06:20

when i see this go white i'm going to

play06:22

reposit

play06:31

okay so now what we have and

play06:35

let me try to click on a little

play06:37

different view of this

play06:41

this device right here is kind of like a

play06:43

forklift without the

play06:44

fork truck and you can see it's got

play06:47

forks right

play06:48

and forks left it also has an at right

play06:51

and you can't see it but there's an at

play06:53

left uh signal down here

play06:55

and then there's also an at middle so

play06:57

right now it's sitting in the middle

play06:59

and anytime we want to move the pallet

play07:02

to the shelving over here

play07:04

it has to be at the middle position

play07:06

otherwise we're going to hit

play07:08

the structure either here or here

play07:11

so and we can release the conveyors we

play07:14

don't need them anymore

play07:16

and just to show you the first thing we

play07:18

need to do is we need to go

play07:20

fort's left and watch where this

play07:23

forks go underneath the pallet

play07:28

and i'll un pause it and you can see

play07:31

they go right underneath the

play07:32

pallet and now the at left signal goes

play07:36

high

play07:37

now what we can do is we can lift it up

play07:40

because we need to and let me show this

play07:43

a little better

play07:44

we need to lift it off the conveyor

play07:47

so if we hit the left signal

play07:51

you can see that it lifted off the

play07:52

conveyor now that we have it lifted up

play07:56

we can take the forks left

play08:00

signal off and we can wait until we get

play08:03

to the

play08:04

at middle signal so what we can

play08:09

what we want to do is we're going to

play08:10

release this

play08:12

and we're going to wait until we get the

play08:14

at middle signal go high

play08:17

so we release it

play08:20

at middle signal right here so it's at

play08:23

the middle

play08:24

so now we can move it into position now

play08:27

this part is important

play08:29

down here is something called target

play08:30

position and that means where do you

play08:32

want to move it to

play08:34

now we said what we're going to do is

play08:36

we're going to move it to this first

play08:37

position

play08:39

so i'm going to change that to a one

play08:44

and you can see it's forced on now as

play08:47

soon as i click anywhere

play08:48

outside of the box here it's going to

play08:52

move to the position

play08:53

right here so

play08:59

okay you can see that now what i need to

play09:02

do

play09:03

is i need to move the forks to the right

play09:05

position

play09:06

which is towards the structure

play09:13

okay so now it's in position

play09:16

so now what i and you can see it's at

play09:18

right and you have to make sure

play09:20

that it gets all the way you know if

play09:23

you're going left

play09:24

you have to see the at left if you're

play09:26

going to the middle it's got to be

play09:27

at middle but now what i can do because

play09:30

it is at right

play09:31

i can release the lift signal and it's

play09:35

going to set it

play09:36

down on the structure

play09:39

okay and now that it set it down on the

play09:43

structure

play09:43

i can also release the forks right

play09:45

signal and again i'm looking for it to

play09:48

go

play09:48

back to at middle

play09:55

so when it gets back to add middle

play09:58

okay now here's the other important

play09:59

thing so

play10:01

you know what we're going to do is we're

play10:02

going to increment all these

play10:04

positions you know we want to fill one

play10:06

then two then three

play10:07

but when you want to go back home you've

play10:10

got to fill this

play10:12

with spot 100

play10:15

okay and again when i click anywhere

play10:18

outside here it's going to go back to

play10:19

that position

play10:25

okay now the other thing you need to

play10:27

know

play10:29

is there's these two signals moving x

play10:32

and moving z and the way we're going to

play10:35

set it up

play10:36

is um well first if i do lift

play10:40

you'll see them well at least the moving

play10:44

z because it'll just be going straight

play10:46

up

play10:46

but that'll turn on and you can see it

play10:49

right here

play10:54

you can see it turns on for a little bit

play10:56

and then it'll turn off

play10:58

and if i release it it'll do the same

play11:02

and if i go to a position and i'll just

play11:07

i don't know i'll pick one that i know

play11:10

it makes it

play11:11

go for quite some time

play11:17

and now you see both x and z go high

play11:20

until it gets into the position

play11:25

so they're both high and it's moving

play11:27

into position

play11:30

and

play11:35

so z went off and now x went off

play11:39

and i'm going to go back home so to go

play11:43

back home

play11:43

is again it's always 100 that

play11:47

is not going to change and you'll see

play11:50

these go high

play11:51

and then when it gets back home they'll

play11:54

again go low

play12:08

okay they're high and then they went low

play12:11

now that's going to be how we're going

play12:14

to

play12:15

approach this project and

play12:19

i'm going to pause it here and then turn

play12:21

on our timing diagram and you can see

play12:23

the steps

play12:24

that i have put in here and then you can

play12:27

put in there and

play12:28

you know program your plc

play12:32

doesn't have to be this way and i'm not

play12:34

saying mine is the best way but

play12:36

this is an approach you can use

play12:40

okay so this is the way where our

play12:42

signals are gonna work here

play12:43

um or at least in my little version of

play12:46

it

play12:47

we start off we're going to send out an

play12:50

emitter signal

play12:51

and when we get that emitter signal

play12:53

we're going to get the at entry sensor

play12:56

the add entry sensor is going to turn on

play12:58

the load conveyor

play13:00

now this is a signal that i was playing

play13:02

around with originally but we're not

play13:04

going to use anymore

play13:08

and what we have is

play13:11

we're then going to turn on

play13:14

the load conveyor and when it gets to

play13:16

the at load signal

play13:18

which is a signal like right at the

play13:21

lift point we're going to turn off both

play13:23

conveyors

play13:25

so when we get to the at load point

play13:28

what we're going to do is we're going to

play13:29

take our forks we're going to make them

play13:31

go left

play13:32

when they get to the at left signal

play13:35

um then we're going to lift

play13:39

and we're going to lift it up

play13:43

now remember when we finish moving

play13:46

and this says move z but it's really

play13:50

move z or move x when it stops moving

play13:53

what we're going to do is we're going to

play13:55

have a counter

play13:56

that counts and i call it mode here

play14:00

but every time it stops moving we're

play14:03

going to have it count

play14:04

so the first time it moves we're just

play14:06

lifting it up

play14:08

okay and then

play14:11

what we're going to do when it gets to

play14:14

the at middle

play14:16

is we're going to load it with the

play14:17

position we need to go to

play14:19

so the first position is going to be

play14:21

position one

play14:23

now as soon as we put a different

play14:25

position in there it's going to start

play14:26

moving

play14:27

by itself to that position okay

play14:30

so it moves to the first

play14:34

place where it can store when that gets

play14:37

finished we're going to

play14:38

move in a two and the first thing we

play14:42

we're going to increment the counter and

play14:45

it'll go to two now the first thing

play14:47

we're going to do is we're going to

play14:49

you know set it in position so we've got

play14:52

to move the forks right

play14:53

when the forks are right what we do

play14:58

is we're going to um you know

play15:01

set it down on the rack

play15:04

so when we get to the at right point

play15:08

what we're going to do is we're going to

play15:10

get rid of that lift point

play15:12

or pulse so we start the lift when we

play15:15

you know first have the forks underneath

play15:19

it

play15:19

all the way over to here and then when

play15:22

we get to the forks

play15:23

are at right is when we turn off

play15:26

the lift signal and

play15:29

again when we'll send the lift down will

play15:32

happen automatically and when the lift

play15:35

goes all the way down

play15:36

again what we're waiting for because

play15:39

we'll get rid of

play15:40

the at right signal or i mean we'll

play15:43

turn off the fork's right signal so

play15:46

again

play15:47

it'll move towards the middle when it

play15:49

gets at

play15:50

the middle that's when we're going to

play15:52

load in

play15:53

the position that says go home which is

play15:56

position 100

play15:57

so this position will

play16:00

just be incremented every time we load

play16:02

it in a different slot

play16:05

then over here when we're going home

play16:07

it's always 100.

play16:09

so i'm just because it's uh

play16:13

already kind of a long video i'm going

play16:15

to just make

play16:16

most of the

play16:20

logic in control i o and i figure

play16:23

people who are looking at this video

play16:26

probably use the control i o

play16:27

and know how to use it i will show some

play16:30

of the very last logic because there is

play16:32

a couple

play16:34

things that i kind of found found

play16:37

unusual

play16:38

and we can take a look at that and then

play16:40

we can take a look at the full logic and

play16:42

we can explain that

play16:44

okay so now this is the logic that we

play16:47

have um

play16:50

and right here is start stop logic

play16:53

and what we mainly use are these

play16:56

rs flip flops and their set reset

play17:01

and set turns the output high reset

play17:04

turns the output low and you can think

play17:07

of it as on

play17:08

off now there is this rs

play17:12

there's also this sr and let me see if i

play17:15

can

play17:16

put them in here

play17:19

so this is an rs

play17:22

and this is the sr and they look very

play17:25

similar

play17:26

now if you zoom in on these guys

play17:29

the only difference is

play17:32

the reset set flip flop the rs you can

play17:35

see it says

play17:36

reset one and the set reset

play17:39

flip flop you can see that it says set

play17:41

one now what that means

play17:44

is if both of these are one at the same

play17:47

time

play17:49

the the reset is the dominant one here

play17:51

and the set is a dominant one here

play17:54

so if these are both one at the same

play17:55

time this will be

play17:58

a zero because you've reset it if these

play18:01

are both one at the same time the output

play18:03

is going to be one it's going to be high

play18:06

typically you don't want that and you

play18:08

want to make sure that you're not using

play18:10

this one you want to make sure that

play18:12

you're using the one that has the reset

play18:14

dominant

play18:15

now you know when you do the logic

play18:18

correctly they should never be the same

play18:21

they should never be high at the same

play18:22

time

play18:25

so having said that let's take a look at

play18:27

our logic the start

play18:29

when we hit the start push button

play18:32

this output is going to go high and i

play18:35

always have a signal that i call start

play18:37

process

play18:38

and it's also going to turn on the start

play18:42

light

play18:44

and it's because this is not it's going

play18:46

to turn off the stop light

play18:47

and you can see here and what i like

play18:50

doing for the

play18:50

control i o is i like putting the

play18:53

control i o

play18:55

right kind of in the middle

play18:58

of the

play19:01

the actual factory i o so let me just

play19:04

minimize this for a second

play19:06

so these are the sensors for

play19:11

the factory i o and you can see the ones

play19:13

that are high

play19:14

are lit up the ones that are off are not

play19:17

lit up

play19:18

these are the outputs or the actuators i

play19:20

like putting

play19:22

you know my factory i o in between those

play19:25

two

play19:26

so i can look at those and

play19:30

come out

play19:34

so i can see like for instance stop is

play19:36

high

play19:37

now you can see stop is higher here

play19:39

because this is also lit up

play19:40

now we haven't hit start yet so that's

play19:42

not lit up

play19:44

the emergency stop which i put in here

play19:48

is also high and you can see that here

play19:50

the emergency stop is high

play19:52

the stop is high so that's just the

play19:55

start logic

play19:56

and then i use the start process to say

play19:58

when that happens

play19:59

and the start bit occurs

play20:03

you know we're going to get our first

play20:04

emitter

play20:06

and then i also have this as emitter bit

play20:11

and we're going to set it with either

play20:15

when we press the start and the start

play20:17

process is high

play20:18

or we have this signal next box so we're

play20:21

going to automatically keep

play20:23

the machine moving and we're going to do

play20:25

it with this next box signal

play20:27

now the signal that turns this off

play20:30

is this reset signal and

play20:34

that's when it gets to you know we have

play20:38

it at the add

play20:39

entry now because the ad entry is

play20:42

normally high we have to

play20:43

you know knot it uh to get the low

play20:47

signal

play20:47

so when it goes low this will go high

play20:50

and that will turn

play20:51

off the emitter signal

play20:55

and we have the entry conveyor

play21:00

which that also turns on the entry

play21:02

conveyor and what turns it off is when

play21:04

it's at the at load

play21:06

and we have the load conveyor which

play21:09

we're going to turn on

play21:10

again when we're at add entry and we

play21:13

have

play21:14

an emitter and then we're going to turn

play21:16

it off again when we get to the at load

play21:19

now when we get to that load we're also

play21:22

going to start the forks going

play21:23

left and we're going to use that

play21:27

this is the falling trigger and that

play21:30

means

play21:30

when the signal as soon as it falls

play21:33

we're going to send out

play21:34

a pulse that's one scan wide that will

play21:37

be high for one scan

play21:39

and that will trigger this to turn it

play21:41

off and it'll trigger the force to turn

play21:43

on

play21:45

now

play21:48

again we're going to reset this with the

play21:51

move complete

play21:53

so when the move is complete

play21:57

um you know this signal will turn

play22:00

off the force left and

play22:04

again the first time we move it is the

play22:07

lift signal

play22:08

so this is really when the first

play22:12

lift signal

play22:16

you know we've lifted it up and now

play22:19

after

play22:19

we've completed that move is when the

play22:22

forks left

play22:23

will be turned off and

play22:26

here's the lift signal so when we're at

play22:29

left

play22:31

we lift it up and then when we're at

play22:33

right

play22:34

is when we set it down on the structure

play22:37

and over here yep

play22:44

now here's where we have our counter

play22:47

now this is our mode counter so this is

play22:49

mode

play22:50

this is counter up when we get the mode

play22:52

complete is when we count

play22:55

when we get our next box is when

play23:01

we reset it and we've just set the

play23:05

preset to 4.

play23:10

now here

play23:14

is where we just have our load position

play23:17

and this is the position

play23:18

in the rack in the structure that we are

play23:21

going to

play23:23

keep incrementing every time we fill up

play23:26

you know we fill up position one

play23:27

then we fill up position two we fill up

play23:30

position three

play23:31

um and so on and this is just a counter

play23:34

that we're

play23:35

going to count the positions and i've

play23:36

just put the terminal count at

play23:39

54. and i think that's

play23:42

about right

play23:46

and so this is the load position that

play23:48

we're going to aim

play23:50

for now this

play23:53

is part of

play23:57

the uh logic that i got a little problem

play24:01

with

play24:01

but um so when we when we're in mode one

play24:05

or mode two

play24:07

and these are just uh equals

play24:11

let me try to zoom in a little bit so

play24:13

these are equals so

play24:14

when it when mode is one or modis two

play24:18

and this is an or gate what we're going

play24:21

to do and

play24:22

first we have this assigned you know the

play24:24

one odd thing with

play24:26

this control i o is you don't have a way

play24:28

to move

play24:30

um like you normally would i wanted to

play24:33

move like a number

play24:36

six into a certain spot because over

play24:39

here

play24:40

is what we're going to have the source

play24:42

position

play24:43

so the source position you know when

play24:46

we're at home

play24:47

is position 0 and when we're moving

play24:50

to the load position where we want to

play24:52

load it

play24:53

we have to put that into our source

play24:55

position or what i call

play24:56

source position now the way you move it

play24:59

is

play25:00

there's this assigned bit and

play25:03

let me show you what this has if you go

play25:05

in the documentation for factory i o

play25:10

they have pretty good documentation for

play25:12

the control i o

play25:13

and this assign which actually appears

play25:17

in the extra function

play25:22

what happens is if this signal

play25:25

on the input is high you'll be looking

play25:27

at what

play25:28

is coming into pt2

play25:32

if it's off you'll be looking at what's

play25:34

coming in pt1

play25:36

okay so

play25:40

the way i have it set up is

play25:46

that when the counter

play25:50

is zero or one which means

play25:53

you're moving to the position or you're

play25:56

at the position

play25:58

that'll be a logic high which means

play26:00

you're going to be selecting

play26:02

this load position

play26:05

otherwise you know presumably you'll be

play26:08

at home

play26:08

or going to home will you be at home so

play26:12

you want to put in

play26:14

a zero and so this is the logic

play26:18

that you'd accomplishes that

play26:22

now the thing that's and i'm not quite

play26:26

sure

play26:26

i know the increases i think because

play26:29

when you switch from this to this

play26:31

there's a delay

play26:32

so what i had to do is when the signal

play26:35

goes high

play26:37

to give it enough time to switch to the

play26:40

load position

play26:41

i had to put a timer in there to

play26:45

effectively put a delay in there now

play26:47

this would be a delay of two seconds

play26:49

so it just gives it a little delay so

play26:52

there's enough time for the load

play26:53

position

play26:54

to get into this source position

play26:59

if that makes any sense now um

play27:06

what we're going to do now is we're

play27:07

going to put in the same type of circuit

play27:10

um so what i can do is

play27:14

i can sort of copy this whole thing

play27:20

and

play27:24

hopefully we can and you can use control

play27:27

c

play27:27

control v and we're going to paste it

play27:29

down here now everything's still

play27:31

highlighted so i can move it

play27:33

now here

play27:38

what we're going to do

play27:44

is instead of this well we can get rid

play27:47

of this guy

play27:58

because now what we're going to do is

play28:01

we're only going to be interested in

play28:03

when we're at mode 3 and mode 3 again

play28:06

is we are trying to get back home

play28:10

so we don't really have an or gate here

play28:17

what we're going to do is we're going to

play28:19

have what we really need is we need an

play28:22

and gate so we're going to delete that

play28:24

we're going to put in a 2 in and

play28:26

drag it in here

play28:35

and i don't think we need this timer in

play28:38

here either

play28:43

and the other signal that we're going to

play28:45

have so we're going to have when we're

play28:47

at

play28:50

mode 3. now the other signal that we

play28:53

need and

play28:55

if we go into our tags we need the at

play28:58

middle signal

play28:59

so again when we're in mode three we

play29:02

have to wait until we're at the middle

play29:03

signal

play29:05

and then we can

play29:09

put this into the assignment now here

play29:13

what we're going to have is instead of

play29:15

this being

play29:16

position zero

play29:19

delete that is we're going to make that

play29:23

the source position

play29:28

and we're going to move that down here

play29:32

and we can just wire that there and now

play29:35

this instead of this being the load

play29:37

position

play29:39

we can delete that

play29:44

and we can copy this

play29:47

put this down here and we can make this

play29:51

because here we're going home so this is

play29:54

always going to be

play29:56

position 100

play30:00

so let me

play30:04

100 and now instead of this being this

play30:07

source position what we're going to have

play30:10

is this is going to be our target

play30:12

position

play30:13

and you don't want to click on this one

play30:15

over here i made that

play30:17

mistake what you want to do is you want

play30:19

to make sure you're picking everything

play30:21

from

play30:22

the control i o signals so we want the

play30:25

target position from here

play30:29

so what we have is we have a choice

play30:34

you know this is the final thing that's

play30:35

going to determine the move

play30:37

so

play30:40

when we're in mode one and two

play30:44

the source position is just incrementing

play30:46

from spot to spot to spot

play30:48

when we're in mode three then we're

play30:51

going to

play30:51

go to 100. so only in mode 3 is the

play30:55

signal going to be true

play30:56

so it's you know if it's not in mode 3

play30:59

it's going to be looking at the source

play31:00

position

play31:01

if it is in mode 3 it's going to be

play31:03

looking for going home

play31:05

which again is position 100.

play31:09

now what we don't have on here

play31:13

is we've got to put in

play31:17

the logics for going

play31:20

moving our forks to the right position

play31:24

so again and you know the easiest thing

play31:26

is if you

play31:28

have the logic and if you can fully

play31:32

copy it

play31:41

yeah come on

play31:46

okay control c control v

play31:51

so here we're going to

play31:55

and you know again for forks right

play31:59

the um when forks right goes high

play32:04

we're still at um mode

play32:07

one it's the very end of mode one

play32:11

and we need two in and

play32:14

and you know work these there's actually

play32:17

two sliders there's one to move up and

play32:19

down for the tags

play32:20

and then there's one to move up and down

play32:22

for the full thing

play32:23

um so we're going to put in two in and

play32:29

connect that up and the other signal we

play32:33

want here

play32:34

is we want our move complete signal

play32:38

so you know all these purple things here

play32:40

are just

play32:41

memories that we've picked so if we go

play32:44

back up here

play32:45

to memories and

play32:50

these here are integers and

play32:55

what we really need is we need the bool

play33:00

so now this is picking

play33:03

the next unused bool but what we really

play33:06

want

play33:07

and if you click in here it'll give you

play33:09

the addresses

play33:10

what we want for this one is we want to

play33:12

move complete signal

play33:15

so that's the one that we want so when

play33:17

the move is complete and the two in and

play33:25

we're going to go into

play33:29

the reset set flip-flop and this will be

play33:33

controlling

play33:34

the fort's right signal

play33:37

so the fort's right is an out there

play33:40

it's an input over here

play33:45

so fort's right we can drag it in over

play33:50

here

play33:52

and again what

play33:55

resets that signal is

play33:58

when we get to mode two

play34:03

so what we can do is

play34:09

we can pretty much well and we even need

play34:12

nand gate too

play34:14

so we can copy all this with control c

play34:20

and

play34:26

ctrl v and

play34:29

try to move it into the spot now

play34:33

so the output here is going to reset it

play34:36

and

play34:38

let me try to zoom in a little bit so i

play34:40

can make the connections easier

play34:42

and this one we're going to

play34:45

when this gets to a two

play34:49

is when we're going to reset it and

play34:51

again we're going to use the

play34:53

move complete signal as you know the

play34:56

signal that resets it

play34:58

so when we lift it down is when we go

play35:00

from step

play35:02

or mode two to mode three so when it's

play35:06

at mode two

play35:07

the very end of mode two is when we're

play35:10

going to

play35:10

set this down in place

play35:13

and then

play35:20

our final thing that we need to do we've

play35:22

got it right now we just have to

play35:25

put in the signal for the next

play35:30

box

play35:33

and again grab them all

play35:42

so you know we're we're using you know

play35:45

we're using the mode counter to say what

play35:47

mode we're in

play35:48

and um then we're just using

play35:53

you know these comparisons

play35:58

we're going to the next box

play36:01

when we actually count from three to

play36:04

four

play36:05

which really wasn't on the timing

play36:07

diagram but all we're going to do

play36:09

with the when we count to four which we

play36:12

actually do count to four when we move

play36:14

home we're moving home

play36:16

on count three when it gets to the home

play36:18

position it goes to count

play36:20

four um now

play36:23

again what i had to do

play36:27

to kind of make it work was go in here

play36:30

and put in timer that gave it a little

play36:33

delay here

play36:38

and

play36:43

so when we temporarily get that count

play36:45

four

play36:46

and i had that set up for

play36:50

a short period of time

play37:03

so when you're putting these in these

play37:06

are the modes so they're just integers

play37:08

when you're looking at the timers these

play37:10

are in milliseconds

play37:11

so right now this is 800 milliseconds

play37:15

the other timer that was in there was

play37:16

like 2000 which is two seconds

play37:19

so this will count out and it'll put in

play37:22

a delay of

play37:23

you know 800 milliseconds and what we're

play37:26

going to do

play37:27

is um we're just going to create

play37:31

a bool memory

play37:37

and we're going to put that on the q

play37:40

output

play37:40

so when it times out this signal goes

play37:43

high

play37:44

now this signal and again if you click

play37:47

on the box

play37:48

it's going to say what do you want to

play37:49

name that and we're going to name that

play37:51

next box

play37:56

and so what does the next box do it does

play38:00

two things

play38:01

first off um

play38:05

the next box is where we have our

play38:07

counter

play38:10

[Music]

play38:11

not that counter that's the position

play38:13

counter

play38:15

this is the mode counter so we have the

play38:16

mode counter we put the next box into

play38:19

the reset

play38:20

so as soon as that signal goes high this

play38:22

will go back to zero

play38:23

so it counts up one two three a quick

play38:26

four and then right back to zero

play38:28

and then the other place that we have

play38:31

next

play38:32

box is right here which is

play38:35

the next box which is the second

play38:39

and every subsequent emitter

play38:42

so the first meter is when we press the

play38:45

start push button

play38:46

all the other ones are virtue of the

play38:49

next box

play38:51

so that is our program for control i o

play38:56

and let's see we can minimize

play39:00

that and the control i o

play39:04

if you go into the drivers well let me

play39:06

show you here

play39:07

if you go into file you go into drivers

play39:10

to set up the control i o

play39:12

you know you can set it up for all these

play39:14

different allen bradley stuff

play39:17

there's some modbus and then there's

play39:19

siemens

play39:21

but here's the control i o

play39:24

so if we go back here we should be

play39:28

we want to make sure that all our forces

play39:30

are released

play39:31

when we start this and again you can see

play39:35

um when we're in this spot right here

play39:38

that's the target position of zero

play39:41

so let's take a look

play39:49

and i'm going to speed it up

play39:53

to normal speed

play39:56

the forks go left they lift it up

play40:00

go to position one and you can see

play40:02

target position is position one

play40:05

okay go and set it down and you can see

play40:09

every time every time it moves

play40:13

you're going to see sometimes when it's

play40:15

just lifting

play40:16

um oh my next box isn't working

play40:22

okay i'm going to pause it for a second

play40:24

and see what's

play40:25

going okay well i have a next box that i

play40:28

put as a

play40:30

bit 4 here and i'm going to have to

play40:33

pause this

play40:34

but up here let's see

play40:39

um

play40:43

i actually have

play40:46

the next box

play40:50

as three

play40:53

so and let's see what it is at this

play40:57

counter

play40:59

this next box

play41:02

is also three so i've got that wrong

play41:12

so make that three now sometimes just to

play41:16

make sure

play41:18

everything is good we'll have to reset

play41:20

everything

play41:25

reset here

play41:33

and take it off pause

play41:37

now when we take it off pause it goes

play41:38

off pause here too so let's

play41:41

see if that was our mistake

play41:55

and this should be pretty quick to

play41:57

confirm

play42:00

so again that's going into spot one

play42:03

now you can see when we go back um

play42:07

to our position it goes to one hundred

play42:10

and here's the second box so i think

play42:13

that was our

play42:14

little um mistake my fault

play42:18

happens a lot when you're doing this

play42:20

kind of live

play42:23

should pay better attention to this

play42:25

stuff but you know you can see it'll

play42:27

just keep going

play42:28

back and forth position 100 to go back

play42:33

home

play42:34

i'm going to get another emitter box

play42:37

and then you'll see this go to spot 3

play42:41

which it should

play42:49

that's three you load it in place

play42:53

and again you know the this stuff is

play42:56

you know you can walk through what

play42:59

position what you need to control

play43:02

um and then you write the logic to do it

play43:05

and you know control i o is all this

play43:08

what they call

play43:08

function block diagrams um it's not

play43:11

ladder logic

play43:14

but if you wanted to write this in

play43:16

lighter logic then you're going to need

play43:18

some poc software

play43:21

to do that in lighter logic but this is

play43:24

good

play43:25

way to learn how to do it

play43:28

a function block diagram is used

play43:32

it you know not as much as ladder logic

play43:35

ladder logic is used primarily because

play43:37

it's all visual and you can see what's

play43:39

turned on what's turned off

play43:42

but function block diagram is probably

play43:44

the second

play43:46

most used type of logic that there is

play43:51

there are other types but

play43:54

for the other types you certainly are

play43:56

going to need the plc software to

play43:59

be able to use it and so i think what

play44:02

we're going to do here is we're just

play44:04

going to wait until it

play44:05

fills up the first row and then we'll

play44:07

just see it go into the second row

play44:09

and again it's it it's going to be the

play44:11

same thing because we're just

play44:13

incrementing each spot so let's see

play44:17

wrap one two three four five six

play44:24

so two one two three four five

play44:27

six seven okay seven eight

play44:31

nine and then that'll be ten um once we

play44:34

start on the second row i think we'll

play44:36

kind of leave it at that because this is

play44:37

a

play44:39

long video right now

play44:52

i can't imagine how long it would have

play44:54

been if i would have shown all this

play44:55

all the software or i mean making all

play44:58

the connections for the

play45:00

control i o but

play45:03

you know you can take a look at it um

play45:05

you know see if you can

play45:07

uh put together all the

play45:11

logic that you need see if

play45:14

you know i'm still not convinced that i

play45:17

needed all those

play45:18

time delays in there but uh

play45:21

you know it seemed like uh that was the

play45:23

only way i could get it to work

play45:25

maybe you can do better and get it to

play45:27

work without those delays

play45:30

so give it a shot and see what it looks

play45:32

like

play45:34

um and you don't really have to uh

play45:37

load it in order you know for instance

play45:39

there could be something that says

play45:41

you know maybe you want um

play45:46

you know like maybe you want all these

play45:49

heavy boxes on the first row

play45:51

and then maybe because you know you get

play45:53

the packages

play45:55

you know right now it's eight to one

play45:57

ratio so maybe

play45:58

you say well i'll load these steel

play46:01

things

play46:01

down in the first row and then um

play46:06

you know the regular boxes starting up

play46:08

in like

play46:10

i don't know row three four five and six

play46:14

but then you'll need extra logic to

play46:16

control

play46:17

uh you know what position you're loading

play46:20

into

play46:20

and you'd also need some type of sensor

play46:22

to say oh

play46:24

this is a metal box and they do have uh

play46:27

you know what you'd use well now we're

play46:30

getting all metal boxes so maybe i'm

play46:32

wrong

play46:33

but uh they do have inductive sensors

play46:35

where you can

play46:36

just look for metal objects

play46:40

now at some point you'd have to put a

play46:42

sensor

play46:43

where before you started lifting it up

play46:45

you could identify it to be metal or not

play46:47

metal

play46:48

but uh you know you might want to give

play46:51

it a try

play46:52

so anyway uh now it's all metal boxes

play46:56

anyway um you know take a look at it is

play46:59

kind of challenging

play47:00

um it's a good test of your

play47:03

programmabilities good luck

play47:04

thank you

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
AutomationWarehouseFactor IOSimulationPallet StorageConveyor SystemPLC ProgrammingControl LogicSensorsActuators