Copyright © 2001-2024 All rights reserved. Woodgrove Digital Engineering P⁄L. Last revised: 30th September 2024
CREDITS
LINKS

Greg Wood's Resumé

Summary:

I've been involved in programming since 1978.

I have written (as distinct from “used” or “written for”) the following software functions:

  • multi-user relational database systems, editors, and queries
  • multi-tasking executives
  • SCADA systems
  • assemblers, interpreters, and compilers
  • code generators
  • graphics generation and display
  • HTTP, FTP, SQL, and XML interfaces
  • a word processor
  • a PLC emulator
  • a PLC ladder display
  • protocol drivers including TELNET, SY-MAX (Square-D PLCs), DF-1 (Allen-Bradley PLCs), Hitachi PLC COMM-2H, Mitsubishi PLC QNA protocols formats 1 and 5, Telemecanique TSX-7 PLCs, VCP8514A (NDC guided vehicles), among others
  • a lot of application code

Instances of all the above-listed software have been incorporated within the “Movement Controller”. On that page is a description of the development of this package.

My work over the past five years has included:

  • adding SQL-style queries to my core software (C++),
  • writing a video-selection program (C++),
  • adding an HTTP interface to my warehouse automation software, music selection software and video selection software (C++, JavaScript IE6, HTML5, CSS3, and SVG2),
  • the presentation of strain suffered during athroscopy (WPF ‐ C# and XAML),
  • updating my website to incorporate the latest features of PHP7, JavaScript IE6, HTML5 CSS3, and SVG2,
  • revising and updating my knowledge of Python,
  • teaching myself Rust,
  • teaching myself Redux/React, and
  • writing software to solve puzzles (C++ and Rust).

I have worked on the following types of projects:

  • heavy-unit-load conveyor systems
  • carton conveyor systems
  • stacker and over-head vacuum cranes
  • pick-to-light and sortation systems
  • palletisers and depalletisers et cetera
  • automatic warehouse control
  • web site design
  • statistical analysis
  • operator interfaces for medical equipment
  • SCADA systems
  • automatic lane changing for the Sydney Harbour Bridge
  • windscreen furnaces
  • energy and maximum demand metering systems
  • flow metering for gas and liquids pipelines
  • three-axis machine controllers
  • coal belt-wagons, crushers, stackers, and reclaimers
  • TDCC (time-domain cross-connect) Telecom's digital phone network
  • simulation equipment for the PC-3 Orion aircraft
  • microcomputer systems for the unit for the THE SAFETY HINDSIGHT FACTOR, hand-held sirens, vibrating feeder controllers, sun-tan demonstration units, dark-room timers, simulation systems for mine sweepers, battery chargers, cow-spine deactivation, pick-to-light display units, and a brothel timer
  • applications for mobile phones
  • a song selection program (“The mUser”)
  • a video selection program (“The vUser”)

I have used the following software:

  • Microsoft Windows (mostly and currently), Unix (many years back), Linux/X-Windows/GTK+ (several years back), several mobile phone operating systems, some real-time operating systems, and several operating systems from the past.
  • C/C++ (this has been most of my work), WPF (C# and XAML for one project a few years ago), Rust (as a learning exercise), VisualBasic (one project many years ago), VBScript (used regularly), Java (two projects several years ago), Python5 (including NumPy, SciPy, and PyQt5 - one project about five years ago but revised recently), PHP7 and SQLite3 (for my website), HTML5, CSS3, JavaScript IE6 (including AJAX), and SVG2 (for my website and HTTP interfaces to my software), Redux-React (as a learning exercise), BASIC, FORTRAN, and PL/M (ages ago)
  • numerous assemblers
  • The Visual Studio, Eclipse, and IAR integrated development environments
  • Ethernet, TCP/IP, HDLC, X-25, and other protocol drivers

I have worked with the following computer hardware:

  • IBM compatible personal computers (Windows/Linux computers)
  • PLCs - Allen-Bradley, Siemens, Omron, Mitsubishi, Kingfisher, and others
  • micro-processors - SGS Thompson's range, Texas Instruments MSP range, Philips 8051-Based range, Intel's 8080, 8048, 8085, 8088, 8089, and 8086, and Motorola's 6809.
  • Several mobile phones
  • single-board computers - Intel's iSBC range
  • mini-computers - DEC's PDP11 and VAX11 range

Strengths:

My greatest strengths lie in writing and debugging computer software. I have little difficulty adapting to new languages. I have done a lot of work documenting computer software. I have a lot of experience and ability in producing robust PLC code and in programming microprocessors and microcomputers.

I have spent time designing websites and HTTP interfaces using HTML5, CSS3, PHP7, SQLite3, ECMAScript IE6, AJAX, and SVG2.

I work well on my own and in a team and make a good mentor; I'm a relaxed, happy, friendly, easy-going person.

I have strong mathematical knowledge and skills.

History:

From 1983 to the present time:

I did contract work as “ Woodgrove Digital Engineering P⁄L” and for part of this time I was also in a partnership known as “Coromont Pty Limited”.

The main area of work during this period has been automatic warehousing. This involved the writing of PLC software to control cranes, heavy-unit-load and carton conveyors and their associated devices, palletisers, and depalletisers and the computer software to coordinate these PLCs, along with pick-to-light systems, automatic guided vehicles, and personnel with radio terminals, and to communicate with the clients' computers.

The clients include:

This work incorporates much of the software referred to in the “Summary”.

Work during this period also included:

  • presentation of strain suffered during athroscopy
    (WPF, C#, XAML, and the LiveCharts package)
  • coal handling belt-wagons, crushers, stackers, and reclaimers for Coal India (the Pippawar Coal Mine)
    (Telemecanique PLCs)
    ANECDOTE

    Our client was White Industries. They wanted us to write a specification for the PLC code. We submitted the specification to White Industries and I gave another copy to my wife, who knew nothing about programming, and explained to her how to translate from the specification to PLC code. The client got back to us complaining that the specification was not detailed enough! It may have had its shortcomings but not being detailed was not one of them. I pointed out that my wife was currently upstairs programming from it, with no knowledge of programming nor of the application.

  • the development of a “Local Controller” for Telecom Australia's Time-Domain Cross-Connect system for their digital network
    (Intel PL/M Compiler and a real-time operating system)
    ANECDOTE

    I was rung up by my ex-colleague, Robert. He told me that he'd been working with a team of crack programmers who, after working on it for nine months, had completed the functional specification, and he was looking for people to help code from the specification. I arrived and asked him what I should do. “Greg, here is the specification, can I get you to knock up a shell from it?“ Later that day, I poked my head back in his office, ”Robert, I've knocked up the shell, but it doesn't fit in memory.” The only thing to survive from that specification was the interface specifications.

  • the operator interface for the control of the Sydney Harbour Bridge lane changing
    (DEC PDP11, “C”, RSX11M)
    ANECDOTE

    This is the only time in my professional carrer that I would learn of my problems over the radio in the morning. The software would crash about once every few months. We arranged to have a crash dump produced. Once we got the crash dump, I needed to hand disassemble the software from octal, to establish what the computer was doing at the time of the crash. We found that it had crashed when an asynchronous system trap (AST) was encountered while it was in the process of changing memory-resident overlays. We subsequently found, deep in the DEC manuals a line advising that this was not to be allowed. So we added the disabling of ASTs and all was fine.

  • supporting and helping in the continued development of the PITAN warehouse management software
    (“C”, DBase4)
  • microcomputer programs for hand-held sirens, vibrating feeder controllers, sun-tan demonstration units, dark-room timers, simulation systems for mine sweepers, battery chargers, cow-spine deactivation, pick-to-light display units, and a brothel timer. These were all written using the assembly language of the microcomputer involved.
  • control of fuel pumps for refueling C17 and Hercules aircraft at Richmond Air Force Base
    (Kingfisher PLC)
  • control of windscreen furnaces for O'Briens Glass, Neilsen and Moller, and Viracon (USA)
    (Square-D PLCs, MS-DOS, PC, “C”)
  • monitoring of electricity energy and maximum demand for O'Briens Glass, Marina Mirage and the Tuggeranong Community Centre
    (MS-DOS, PC, “C”)
  • data recorder for the training sessions for the Orion PC3 aircraft
    (PCB Design, Motorola 6809)
  • timed-based controller for a building in Canberra, for Honeywell
    (MS-DOS, PC, “C”)
  • miscellaneous PCB designs
  • commercial software for Ray Guy Stables, and Bias and Bandings (MS-DOS, PC, “C”)

1979 to 1983:

Worked for GEC-Digital.

This work included:

  • SCADA system for the Boondooma Dam to Tarong Power Station water pipeline and pumping stations. This included the development of the SCADA software itself
    (DEC PDP11, “C”, RSX11M)
    ANECDOTE

    Before we delivered this project, we had a problem with the system crashing intermittently. We obtained a crash dump and I hand disassembled the octal to discover that the problem was a disc failure. The failure code corresponded to “No error bit found”. This text was somewhat unhelpful, so we contacted DEC. They more or less replied that if we were to write them a blank cheque, they would endeavour to find out what the problem was. My boss was not inclined to write them such a cheque, so we shipped it as it was, relying upon our customer's maintenance contract with DEC to solve the problem. These discs, I should mention, were large (about half a metre diameter) multi-plattered items - they were expensive items, not the sort of thing that you might routinely discard. When on site commissioning it, the problem occurred again, so we called DEC maintenance. These people were far more helpful than DEC support was. With an oscilliscope, they monitored the signal that controls the magnetic pickup, to make up for any eccentricity in the rotation of the platter. Apparently, the eccentricity was marginal enough to occasionally trigger an error, but the error would be corrected and the error bit quashed before the operating system had a chance to read it.

  • Use of this SCADA system for the North Head Sewage Treatment Works. (the SCADA system I wrote for these jobs was subsequently used on a job for SECWA - State Electricity Commission of Western Australia - and the Sydney Monorail)
  • Development of CAD system for electrical drawings on PDP11 computers
    (DEC PDP11, “C”, RSX11M)
    ANECDOTE

    This was my first experience with a “C” programming language compiler. The compiler was called “Whitesmith's C”, and as noted just above, it ran on a DEC PDP11 with the RSX11M operating system. One of my first surprises was that “=-” was treated equivalently “-=”. According to compiler's documentation, very early on “=-” was defined as the subtraction assignment operator. My next surprise was that the run-time library did not work if you used memory-resident overlays, as it would load itself at the top of memory, as it was with the initial “overlay”, then be partially overwritten by the second overlay, should it be larger than the initial one. As a result, I avoided using the run-time library.

  • Enhancement of Allen-Bradley supplied cross-compiler software for their range of PLCs to be run on DEC PDP11 computers
    (DEC PDP11, FORTRAN, RSX11M)
  • Reprogramming of “Beehive” brand Video Terminal Units to act as operator interfaces to control the operation of Anode stacking cranes (ANI Monosteel) and car bodies (Ford)
    (Assembler)
  • Data recorder for the Liquids Pipeline at the Wickham terminal
    (Intel SBC computers, PL/M, Assembler)
    ANECDOTE

    When I had completed this project and it was ready for delivery, the consultant came in to check it. He was pleased, but requested that I add a password for when they set the correction factor. The password would be echoed as question-marks to the printer. All went well, but after a while there were reports that the two computers would show different results (there were two computers so that they would be confident that the results would be accurate). I went up to Wickham one weekened and tried to get to the bottom of the problem. Everything worked perfectly all weekend. I came back in Monday morning, and just as I was about to pack up and leave, the problem manifested itself. “What did you do?” I asked. ”I just entered the correction factor.” was the reply. Then the penny dropped. The second computer received its keyboard input from the keyboard echo of the first computer, so, instead of receiving the correction security code, it received a series of question marks, so ignored the correction factor.

  • Data recorder for the Gas Pipleine at the Kooragang Island terminal
    (Intel SBC computers, PL/M, Assembler)
  • Aggregate Handling System for Pioneer Concrete in Hong Kong
    (Allen-Bradley PLC-5)
  • Egg Counter for the West Australian Egg Marketing Board
    (Intel SBC computers, PL/M, Assembler)
    ANECDOTE

    The computer board that I used for this project and the gas pipeline project offered 4K of program memory (EPROM) and 256 bytes of data memory. In this amount of space I needed to write a multi-tasking executive, then code the entire application. Compare that to the “Hello World” program for the Rust programming language on Windows 10, which occupies 153K of memory.

  • Adaptation of PLC computer-aided documentation package to run on a microprocessor development system
    (FORTRAN)

1979:

Employed by AWA specifically for the development of a training facility for the Orion PC3 aircraft. My part of this work involved the design of several digital printed circuit boards.

1978:

Contracted by John Sands as a system designer and programmer for their cheque-encoding and other equipment (Intel SBC computers, PL/M, Assembler).

1977:

A brief stint with “Random Electronics” helping their development of a “ Betagraph”, whilst still looking for work.

Employed by A.J.Ferguson (Adelaide) as a sales/application/service engineer, concentrating on microprocessors and imaging arrays.

ANECDOTE

One of the Intel products that I was selling for A.J.Ferguson, was add-in memory for mini-computers. I had the opportunity to speak with one of Intel's engineers, and I asked him whether microprocessors would take over from mini-computers. His reply was that that would never happen due to the enormous software library that had been written for mini-computers.

1973-1976:

Student at Sydney University, Faculty of Engineering, graduating with a B.E. (hons).