Another post, another review. This one though is unexpected, as I found this book only by chance. At first I just shelved it, as Grafcet is pretty self-explanatory and the available online documentation is pretty good on this, but I gave it a chance this weekend just to have a bit of variety in my usual reads. Please enjoy the review.
I found this book recently by chance, so I decided to read it in order to check if I have a good enough understanding of Grafcet. Grafcet is of great importance in automation, as it is a simplified version of Petri nets, which allows one to model finite state machines with parallel and simultaneous control requirements, something the older state transition diagrams are not capable of. Since Grafcet can be learnt and understood in very little time, reading a book on it might seem superfluous (Grafcet tools have pretty good documentation on the language) but having a book that could serve as a reference material seemed to be a good idea, so I gave it a try.
As many other technical books, it starts out with the essential basic concepts, then takes a rather interesting approach to introduce the reader to the language: it starts to automate an imaginary drilling station. The first example is the most basic one could come up with, then with each example the author adds a few more requirements that need to be satisfied. Of course, this will also require the addition of additional language features, so the reader is gradually introduced to the most important features of the language in a very organic fashion. By the end of this section the reader is ready to create her own Grafcet diagrams.
The book doesn’t stop here though, as it moves on to a more formal description of all the features. This is the part that could serve as a reference for later. The only problem I found is, that it seem to be a bit outdated, as it doesn’t include some of the newer notation elements like, enclosing step, initial enclosing step, conditional action, stored action, etc. To avoid confusion, these concepts are actually mentioned in the book, but it would seem, that at the time of writing (1992) they didn’t have separate notation elements for them.
What I really liked is, that the author doesn’t only included a reference style listing of notation elements, but quite some basic structures and simple control examples as well, which cover a lot of things from basic data initialization to sequence synchronization. Moreover, these examples are also supplemented by timing diagrams to help the reader understand how they would actually execute. The book then ends with a short case study on how Grafcet was introduced to the parent company of the publisher to show that it really is a very usable tool even for mission critical systems.
All in all, I really liked almost everything about the book, there are large amounts of figures, the explanations are easy to understand, the book is well structured, and in general it is a quick and pleasant read. The one thing I’m a bit disappointed about is, that the book wasn’t updated by newer notation elements, even though it wouldn’t take too much effort to do (hence the four stars). Despite that, I would definitely recommend it as an introductory piece on Grafcet, as the missing notation elements can be acquired from other sources easily.