Applies To:
  • CitectSCADA 1.00, 1.01, 1.10, 1.11, 1.20, 2.00, 2.01

Question: How can I use a modem with Citect PLC communication? I need the phone number to be dialled to connect the modem to my PLC - then allow Citect to communicate to the PLC. 

You can solve this problem by using another program to dial the number before Citect starts up. For example, use Windows Terminal to dial the number, then startup Citect. This solution requires that you run another program first.

A more complex solution is to write some Cicode to dial the phone number. To use Cicode: (1) First disable communication to all the units that are using the COM port you want to dial. This will stop the I/O server from accessing the COM port. Use the function UnitControl(<unit>, 1, 1) to disable the units. (2) Open the COM port in shared mode with ComOpen(<Port>, 1) and write the required strings to the port with ComWrite(). (3) Re-enable the units with UnitControl() and the I/O Server will start communication to the PLCs.

You may also require some Cicode to re-initialise the modem if the line is lost. You should check if the units have the hardware error 'Unit Offline-cannot talk' error code 0x0C. If you get this error, you may have to re-initialise the modem connection.

The function UnitControl() has been renamed to IODeviceControl() in version 3.0 and later. UnitControl() is still available to allow easy upgrading of your existing projects, however UnitControl() is no longer documented in the manuals or on line help. To allow for easier maintenance of your projects you should change all references to UnitControl() to IODeviceControl().