I'm super new to the Controls world. This is my first controls job and i never went to school or have a background. I was just a technician that was hungry and wanted to learn.
Good for you. I suggest you start
here and
here.
The first link is @Ron Beaufort's PLC boot camp video series, which will explain the scan cycle in less than an hour. Watch the first several videos repeatedly until you can confidently explain the scan cycle to someone else. PLCs are about time, and the scan cycle is the fundamental "unit" of PLC time.
The other, and probably more, important concept that those videos teach is that ladder logic rungs are not circuits. This is an admittedly nuanced point, as most rung behavior is similar to circuit behavior. 99% of the time you will find thinking that way will be good enough, but when that 1% case comes around you will be glad you have the details of how rungs actually work in your back pocket.
The second link shows most of the canonical patterns of PLC Ladder Logic. Study especially the Input Map, the Seal-In, the Start/Stop and the State Coil patterns; you will use the last two, or some a form similar to those, over and over again. In @parky's example in Post #3, the first rung uses the Stop/Start Circuit pattern.
I was tasked with making some code that when I push the Start button at the control cabinet 16 conveyors start at once. They all have a local start button.
My question, is there an easy way to do it?, do i just branch around the local push button?
The simplest answer is yes (but see
Caveats below!): if I assume there are 16 Start/Stop patterns, one for each conveyor, then ORing* the Control Panel [Start_All] in an XIC/NO instruction with the local [Start_Conveyor_N] XIC/NO instruction would be one way to start any conveyor that is not already running.
* OR i.e. you want to start any conveyor if
- EITHER the local start button for that conveyor is pressed
- OR the global Control Panel [Start_All] button is pressed
I say OR because an instruction "branching around" (i.e. in parallel with) the local start button instruction functions as a logical OR.
Caveats
The caveats are issues like the discussion here about not starting all the conveyors at once. Also we on the forum are blissfully unaware of your particular process: are these conveyors in series or in parallel; how many of the conveyors can be started simultaneous;y without overloading the power supply system; are there safety issues e.g. if conveyor N fails to start, is it safe to start convey N+1; etc.?
is there an instruction that can take the input of the button and write to all the outputs? Or do i have to do 16 different rungs with the same input but different outputs?
Yes there is, but it depends on the layout of the discrete outputs' bitboxes**. Specifically, if the discrete outputs' bitboxes are contiguous and compose all or part of a single data word (typically an integer of some kind), then yes, they can all be written with one bitwise-OR instruction***:
Note that when the START_ALL_CONVEYORS bitbox is 1, Rung 0004 could instead bitwise-OR the value 3840 into the word B3:0, which would trigger all of the Start/Stop seal-in branches to evaluate to True.
** see video above
*** four conveyor Start/Stop patterns shown on Rungs 0001-0004, plus one global Start button on Rung 0000; this approach could be expanded for up to 16 or even 32 conveyors