[squeak-dev] GSoC idea - Smalltalk Modbus Industrial Communications Protocol

Ben Coman btc at openInWorld.com
Thu Mar 28 01:14:44 UTC 2013


Janko Mivšek wrote:
> Dear Pharoers,
>
> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
> previous years. So, stretch your brain, come with some more ideas, which
> will be interesting for potential students and of course useful for our
> community. Students you are again welcome to propose such idea by your
> own. One student idea for now!
>
> Ideas so far: http://gsoc2013.esug.org/ideas
>
> To propose an idea just respond to this post by fulfilling this idea
> template:
>
>   

Title:  Smalltalk Modbus Industrial Communications Protocol 

Level:  Intermediate

Possible mentor:  Ben Coman - I can provide the domain knowledge and general programming assistance

Possible second mentor:  Someone to help advise on good Smalltalk architectural patterns


Description: 

Smalltalk has high potential as a SCADA (Supervisor Control And Data Acquisition) platform for industrial plant automation.  A SCADA system provides a real-time animated interface for plant operators to monitor and control industrial processes, by providing graphical mimics of meters, gauges, valves, motors, tanks and field start/stop buttons[1].  A pre-requisite of this is communicating with a PLC (Programmable Logic Controller) to which the electrical wiring of the plant sensor and control devices are connected.  The de facto communications protocol for SCADA/PLC communication is Modbus.  This project will implement the Modbus protocol in Smalltalk.


Technical Details:

First published in 1979, Modbus is a application level master-slave/client-server communications protocol used for SCADA/PLC communications. Much of its popularity as a de facto standard is due to its relatively simple implementation compared to other industrial communications protocols.  The student will use Modbus specifications [2] the student will implement ModbusASCII, ModbusRTU and ModbusTCP.  This will be done first using a simulator[3], then later using a physical I/O module [4] to control some real world devices.

[1] Sample animation at http://en.wikipedia.org/wiki/SCADA (circles are motors, triangles are valves, half circles are valve controllers.)
[2] http://www.modbus.org/specs.php (about 50 pages - not all required)
[2] http://www.plcsimulator.org/Home (or similar)
[3] http://www.audon.co.uk/modbusio/mbiodaio.html (or similar)


Benefits to the Student:

* gain experience in client/server programming
* gain experience in a widely used industrial communication protocol.  
* practice breaking down and implementing a real-world specification - good training for the workplace.  
* controlling the real world from Smalltalk will be cool
* a local industrial plant might be approached to help with a practical test case, maybe leading to ongoing employment.


Benefits to the Community:

This project expands the industry segments into which the Smalltalk community can consult.  It provides a foundation for development of a SCADA system in Smalltalk.  

The industrial automation industry is a great source of bespoke application development.  It is a service industry where the source code is owned by the client, since every industrial plant is different requiring a custom written SCADA application. Many plants run 24x7, so ongoing modifications need to be made online without shutting down the operator's console, for which Smalltalk is ideal (not all current commercial SCADA platforms can do this).  

cheers -ben



More information about the Squeak-dev mailing list