If you wish to publish any portions of this work, in any form, you need to study the license, copyleft mechanism, and mostly be willing to share any modifications you make to the software program. All for the benefit of the ecosystem.
Mostly this project is my profile, or CV if you like; that, and
I'm an altruist so that's why it's free. The simulator was
born over a few weekends, and brought into the office on a Monday
morning for a trial-run. I was writing communications drivers for
Adroit Technologies (www.adroit.co.za)
back then, and used a lot of code from multiple resources in the
simulator to get going fast, by using some code that was already
familiar to me. The code in this project that comes out ofr Adroit Technologies is actually published elsewhere in a driver SDK. Over time it has become my own although it still owes a
lot to it's initial reason for existing. Right now and unless I find
any work in a related line, this simulator is just a weekend project,
and gets updated only when I have time or users report bugs.
If
you think my coding on this project sux and could not possibly offer me a job to write
more of the same for you, you are right. This code is nasty, but it's
mine, and it does fulfill the design requirements quite well. However I
am always looking for work opportunities in the UK.
-
2.3b xx/xx/xx CDB Initial rev submitted to site
-
2.4 22/07/02 CDB Fixed and support Fn 10h and 15h (Write multiple register/extended registers)
-
2.5
28/07/02 CDB conditional compilation macros _COMMS_DEBUGGING and
_UI_DEBUGGING added, specify in build options to enable more debugg'n
messages. Display of data and addresses format is selectable now.
-
2.6
29/07/02 CDB Reading digital I/O showed me a bug where the
CMODCommsProcessor was reading the wrong address, see UnPackField()
-
2.8
07/08/02 CDB Web-link to modicon.com. Tooltips added. Also allow 64K
registers instead of 9999 (10K) uses more RAM now. Window "stay-on-top"
added.
-
2.9 14/08/02 CDB Tooltips work in all dialogs except value edit dialog. This dialog still has some bugs in it.
-
3.1 27/10/02 CDB Devices can all start "off", regsiters can load at start-up. EasterEgg added to "About" box.
-
3.2 02/11/02 HF : (Hirofumi Fudoudou) Hirofumi Fudoudou's changes added CDB : Easter-credits updated
-
3.3
08/11/02 submitted by HF : Integrated transparency index bitmap fixes.
PLC write address returned in telegram corrected too.
-
3.4 11/11/02 CDB : Function 05 (write single coil) is now supported and tested.
-
3.4a 12/11/02 CDB : remember the register area type between load-ups
-
3.4b 21/11/02 CDB : Can now set upper limit to # registers.
-
3.4c 25/11/02 CDB : Write multiple coils 0F is supported now, # registers per req. is settable too.
-
3.4d 27/11/02 CDB : RTS can now be set for enable/dis/h-shake/toggle.
-
3.5
18/12/02 CDB +AP : Renamed the MODCommsProcessor class to
CMODCommsProcessor (Álvaro Palma) Fixed the read-ahead length
calculation. 20/01/03 CDB focus rectangle for the tick-boxes added, tab
order here fixed too.
-
3.6 23/01/03 CDB Keyboard only friendly hotkeys added to get to the other dialogs. [duplicate toolbar]
-
4.0
22/03/03 CDB station activity indicators all accessible now, comms
analyser screen added. CMicroTick over-painting of parent Wnd by 1
pixel fixed. Class headder files tidied up. Registers list redraw
&CPU load when doing writes reduced.
-
4.1 24/03/03 CDB Option so that coils modify before the response is sent- see eMulation dialog
-
4.2 02/04/03 CDB Emulations settings 'tick boxes' update the comms class, new tick for disallowing writes to PLC memory.
-
4.3
04/04/03 CDB If scrolling thru stations, the comms engine was fetching
the wrong station enabled tickbox to see if it was enabled.
-
4.4 11/04/03 CDB dialog can now be re-sized, thanks to CResizer class by Dmitry Kochin
-
5.0 02/05/03 CDB Merged Ethernet TCP functions into the sim/ Added training simulation.
-
5.1 05/05/03 CDB Splash screen- Training sim bugs sorted out.
-
5.2
XX/XX/XX CDB Added tooltips support for diabled controls to trainer
dialog Ray Almog from -
http://www.codeguru.com/controls/tooltip_for_disabled_control.shtml
-
5.3 15/05/03 CDB Icon for application changes from Modbus Ethernet to Serial. <ENTER> key trapped in main dialog.
-
6.0 20/05/03 CDB Allen-Bradley DF1 protocol added
-
6.1 09/06/03 CDB BCC and CRC option on Allen-Bradley added
-
6.2 24/06/03 CDB Modbus RS232 disabled station stations no longer respond as it should be.
-
6.3
06/07/03 CDB debugger screen data was not hex coded correctly, Eth.
message frame trans # bytes are handled correctly too. fault reported
by BMG
-
6.4 28/08/03 CDB When funny chars come in on
serial, we sometimes had crashes, if port settings are invalid, there
is now a warning messagebox!
-
6.5 08/09/03 Time license + : Patrick SOFORCADA fixed length calc. for force multiple coils - / calculate
-
6.6 08/10/03 CDB Help updated, Joy protocol seriously tweaked, new setup dialog for joy
-
6.7 16/10/03 CDB Modbus Ethernet - COMMS screen error message if station ID not active.
-
6.7 Submitted to codeguru.com on 21/10/03
-
6.8 26/10/03 CDB Splash is now "programmed" in text-format, About text changed a bit+ mouse cursor over links fixed.
-
6.9
06/12/03 CDB still need to check out write multiple coils when writting
16. modem status + lights added, HTML help text updated.
-
7.0
14/12/03 CDB cleaned up include statements; multiple stations have
seperate modbus RTU registers. write multiple coils fixed; Ctrl-J
injects random char.
-
7.1 06/08/04 CDB Digital items
now display with a darker background when "on" '1' to make them easier
to spot. requested by Canada customer
-
7.2 30/10/04 CDB
you can now specify a # of bits that is not a multiple of 16 for modbus
coils and relays (in fact any bit-area)
-
7.3 29/10/06 CDB toolbar bn to open/close port
-
7.4
22/01/07 CDB Write multiple coils wrote one too many, fixed.
(reported by Nils Finner)
-
7.4b Write single coil was dividing the returned coil address by 2, fixed now too
__TEST_INJECTMSG macro added to allow testing of any message
<branch>
-
7.3
30/09/05 CDB Creep fix: Script engine/parser was persisting the
script text all of the time
-
7.4
16/02/06 CDB ASCII/text display mode to allow string debugging;
e-mail address changed
-
7.5
25/03/06 CDB When TCP/IP requests Queue up too quickly, the simulator
now processes them all instead of just the first one,
comments tidied a little; modbus TCP/IP can also simulate some errors now.
-
7.6
11/04/06 CDB script run interval is more intuitive
now.
<merge>
-
7.7 22/07/07 CDB
merged branched code, added HTML output GUI feature; disabled the
ERROR-simulation function for now. Nag-screen no longer 'spams' and
locks the
UI.
-
7.8 09/09/07 CDB - floating-point editing values
in the table "never really worked", was displaying 0 and putting 0 in.
telegram Data to have spaces between bytes 00 00 00 = (seems to be in
now)
-
7.9 03/02/08 Baud Rate is 57600
not 64800 (Ken
Robbins)
-
8.010/2/08 - started CSV importer for Vinay
Kumar
-
8.1 28/3/08 - improved debugging msgs for VB script scriptlet errors
-
8.2 05/05/08 - CDB : Added RS232 Modbus support for function 16 Write mask holding register
-
8.3 CDB , ExistFile() moved from csvreader.cpp into mylib.lib
-
8.4 15/06/08 - CDB __TEST_INJECTMSG macro removed now that I have a integration-test app. Adding commandline support
for Leendert in't Veld . Demo interval increased from 30 to 45 minutes.
-
8.5 17/06/08 - CDB Toggling channel closed then opening a dialog raised an exception, reported by Steve Bardsley. fixed.
Help text updated to show command-line stuff from rev 8.04
-
8.6
26/06/08 - CDB released a debug build by mistake. Fixed ASSERTion in
the animation dialog. Fixed Easter-egg scroller only
showling first 11 lines of text.
-
8.7 30/06/08 - CDB Added RTS indication on serial modbus protocol title-bar text R-en/R-tg...
- 8.8
14/08/08 - CDB Removed SCRIPTTEXT_ISPERSISTENT flag from scripting site
since it caused creep (it now has a CPU load hit)
- 8.9
- 8.10
- 8.11 Sourceforge hosted release of a VS2008 project
- 8.12 Removed my old Company email address and domain from most of the code
- 8.13 Fixed a small intermittent stack corruption, and tidied the CRT warnings a little bit.