Yes as I posted earlier, many of these assignments are poorly thought out & open to interpretation. When I start coding typically for this type of application I often put timers in even if I do not think they will be required, normally I just delete them but sometimes reduce the time to minimum.
Mueller: I took a quick look at your code & appart from the small mistakes it is a good effort, well documented, however, It is difficult to say if it is what you call a pass.
Many tutors have their own blinkered way of doing things, I have witnessed this, for example: one of my apprentices did a project where a pick & place system could have 3 possible ways of operating, apparently most students used separate routines for the 3 operations i.e. a typical operation rather than one bit of code that could happen twice was programmed as two separate operations, however, our apprentice spent a couple of weeks with me where we spent considerable time on one of our batching systems, this was recipe driven & I remember explaining to him that the recipe determined what was added to the batch & in what order, and there could be two or more additions that were the same ingredient so the software was designed with that in mind.
He decided to use this way of producing the relevant code, the tutor seemed to indicate it was too complex & did not follow what virtually every other student had done I.e. A 3 position selector that enabled each of the 3 routines, even though the apprentice explained that he used the switch to determine the order of operation in an array & call each function depending on an integer value so only needed to code each operation once. I looked at his code & found it easy to follow, did not repeat itself, small in size.
The company I worked for sent every engineer on a manufacturers course, I believe this was a condition of becoming an approved system integrator for them, it turned out that I seemed to know at least what the tutor did & probably more as I had been using it for a number of years, one thing I commented on was as this was a basic course for beginers it lacked the basic fundamemtals i.e. how a PLC scans, how the I/O is refreshed & other important functions, surely for beginners this is a must to understand how you can use the logic to perform some operations, how many times have you come across posts on this forum where the OP did not know about how a PLC runs the code, examples are set/reset in the scan, duplicate coils & their effects oneshots etc.