Citect for Windows Version 1.01
This document contains important information that is not included in the Citect for Windows Documentation or in online Help.
This document contains important information that is not included in the or in online Help.Contents
0.0 Upgrade Information
0.1 Version 1.0 to 1.01
1.0 Getting Started
1.1 Getting Started - Errata
2.0 User's Guide
2.1 User's Guide - Errata
2.2 Relative Paths
2.3 Netware Lite Configuration
2.4 Additional Report Format Specifiers
3.0 Cicode Reference
3.1 Cicode Reference - Errata
3.2 New Cicode Functions
4.0 Protocols
4.1 Protocols Volume 1 - Errata
5.0 Graphics Designer
5.1 Graphics Designer - Errata
5.2 Setting up the Graphics Designer
0 Upgrade Information
We recommend you should only run Citect with windows 3.1 or greater and DOS 5.0 or greater. Windows 3.1 gives faster performance and is more compatable with network software than earlier versions. When Citect version 1.1 is released, it will require windows version 3.1 or greater to run, so you should upgrade now!.
0.1 Version 1.0 to 1.01
This version fixes various minor bugs and adds some minor enhancements from version 1.0. You don't have to make any changes to your databases for this upgrade but you must recompile all your databases before running.
A problem you may encounter when upgrading is a change in the CITECT.INI file. Version 1.0 put some parameters under [CONFIG] when they should be under the [CTEDIT] section. Version 1.01 has fixed this bug and when you install version 1.01 it will move your parameters from [CONFIG] to [CTEDIT]. If you install on a network the install program will modify the CITECT.INI file of the computer you install on, but it cannot modify the CITECT.INI file of any other computer. You must modify the CITECT.INI file on any other computers on the network which share the same citect installation.
If you don't do this correctly CTEDIT will not be able to find your existing databases and CITECT runtime will say that NO DATABASES INSTALLED when it starts up.
If running on a network you must install this version on all machines before restarting your system. This version is incompatable accross the network with version 1.0, ie the client and server must both be version 1.01. If you try to use a mismatched version the client will not login to the server. The clients will report the hardware error NO SERVER COULD BE FOUND.
1 Getting Started (Manual Revision 1.0)
1.1 Getting Started - Errata
Page 7 - The README.DOC file has been renamed README.WRI.
Page 23 - Alternative way to switch off the search mode has been introduced.
To switch off search mode, either click on the [Search] box or select the [Search] button and then the [Cancel] button at the bottom of the search form.
Page 27 - Alternative way to undelete a record has been introduced.
To undelete a record, either click on the [Deleted] box or select the [Delete] button or press [Alt] + [D].
2 User's Guide (Manual Revision 1.0)
2.1 User's Guide - Errata
Page 61 - REAL Array[5,2] should read REAL ArrayA[5,2]
Page 62 - REAL Array[5,2] should read REAL ArrayA[5,2]
Page 103 - The trend tag file name will default to \CITECT\DATA\<name> not \CITECT\USER\DATA\<name>.
Page 107 - The example for calculating disk storage should read:
Bytes Required = 464 x 5 + 176 + ...
= 607296 bytes
Page 109 - When defining graphics pages, you must either have a page number 1 as the startup page, or change the default value in the parameter [PAGE] [Startup]
Page 133 - The default font for buttons is not system font but the button font.
Page 160 - The {TYPE,N} Field has an extra option "UNACKNOWLEDGED". The Field {COMMENT,N} is not available in all alarms, only on the summary display.
Page 161 - The summary display format length is 120 characters not 16.
Page 168 - The CICODE section of the example should read:
{CICODE}
Print("End of Report")
Shift_Prod = 0; !Reset the Shift production tonnage
Prompt("Shift Report Complete");
{END}
Page 197 - If defining a disk unit then the unit address must specify the name of the disk plc file. If defining a memory unit then leave the unit address blank.
Page 198 - From startup mode, the text should read."The channel will remain unused until activated after a failure of its primary unit".
Page 205 - Appendix C - Parameters, Default Values.
Delete the " " from the string Default Values.
Default Value "C:\CITECT\BIN" is wrong.
Default Value C:\CITECT\BIN is correct.
Page 206 - Appendix C - Parameters, new parameters to [Alarm] Section.
AckHold
This parameter, when set, will cause alarms that have become inactive and have been
acknowledged to remain in the OFF ACKNOWLEDGED alarm list until the operator
clears them from the list using the "AlarmClear()" function.
Default Value 0
Allowable values 0 (disable)
1 (enable)
DisplayDisable
This parameter changes the meaning of the AlarmDisable() function. Normally and
and by default, when an alarm is disabled it is no longer processed by the system.
This means that it will no longer appears in the alarm displays (except the disabled list),
it is no longer logged and no longer changes state with the PLC variable.
Setting this field changes the meaning of Disable in that the alarm is still processed and
logged but is no longer displayed on the alarm display lists, or summaries.
Default Value 0
Allowable values 0 (disable completely)
1 (disable display only)
HighResOff
This parameter is for use with the high resolution alarms. When set to 1 the alarms
are ordered to Millisecond accuracey when they become inactive as well as when the
become active. When set to 0 (default) the millisecond time is only read when alarm
becomes active.
Default value 0
Allowable values 0 (Use Millisec accuracy only when becoming active)
1 (Use Millisec accuracy for active and inactive transitions)
HresType
This parameter indicate what type of High resolution counter or millisecond timer
is being used in the PLC.
Default Value 0
Allowable values 0 (BCD millisecond timer)
1 (Continous counter)
HwExclude
This parameter is used to specify a list of hardware alarm error numbers that you are not
interested in and do not want the system to process. A list of error numbers can be specified
which will all be ignored by the hardware alarm system.
Default Value none
Allowable values comma seperated list of hardware error code.
SavePeriod
The period at which the alarm and event data is saved to disk. To ensure that alarm and
event data is restored after a system crash or shutdown the alarm and event data is
periodically saved to disk. This value specifies the period at which the saving is done.
Note the smaller the period the greater system load.
Default Value 0 (disabled)
Allowable Values (seconds)
SavePrimary
This is the path to the primary save file. There are two save files, usually one for each
of the two alarm servers. The SavePrimary path is the directory that this alarm server
will create its save file in. When restoring the most recent of the Primary andSecondary
save file is used.
Default Value [BIN] (the bin directory in the citect.ini file)
Allowable Values
SaveSecondary
The path to the secondary save file. This is only used when there are two alarm servers
active and should point to the save file of the other alarm server.
Default Value "" (none)
Allowable Values
ScanTime
This parameter determines the rate at which the alarms are scanned. A value of 500
(default) indicates that the PLC data will be scanned and the alarms processed every
500 milliseconds.
Default Value 500
Allowable values 0 to 60000
SummaryMode
The SummaryMode allows you to specify how the summary event are to be logged to the
summary log device. The events can be logged in two different was. Either in order of
the time they went ON or in the order of the time they went OFF. For each of these
modes you can specify if the summary events are to be removed from the screen after
logging or should remain until removed with the AlarmSumDelete() function.
Default Value 0
Allowable Values 0 (log in ON time order and remove from list)
1 (log in ON time order but leave in list)
2 (log in OFF time order and remove from list)
3 (log in OFF time order but leave in list)
SummaryLength
The allowable values for SummaryLength has increased from 1872 to 32,000. Note that each event takes 62 bytes of memory plus the length of the comment. So 32,000 events will take up at least 1.9 Mb of memory, you should have enough memory to keep these events in physical ram or reduce the number of events.
SummaryTolerance
This parameter allows for the fact that the two alarm servers may not record an alarm
event at exactly the same time. This value is used when one alarm server tells another
server to perform some action on a summary entry. The first alarm server sends it's
recorded summary time with the second using that time +/- the Tolerance to find the
corresponding alarm summary in its table.
Default Value 10 (seconds)
Allowable Values
SumStartupCopy
This parameter determines whether the alarm summary data is copied from the other
alarm server or not. Normally on startup the second alarm server will get all the alarm
and summary data from the first server. SumStartupCopy allows the summary data to
not be sent.
Default Value 1
Allowable Values 1 (Send data)
0 (Don't send data)
Page 217 - Appendix C - Parameters, [CtEdit].Data Default Value should be C:\CITECT\DATA.
Page 218 - Appendix C - Parameters, a new parameter in [CtEdit] Section.
Editor
The text editor used for Cicode and Report files.
Default Value Notepad
Allowable Values
Page 210 - The parameter [ANIMATOR].FullScreen is missing. This parameter enables citect to startup in the full screen mode. This option has the same effect as the DspFullScreen function.
Page 271 - The disk unit editor CTDISK is located in the \CITECT\BIN directory.
Page 235 - The [protocol].Watchtime parameter is in seconds not milliseconds.
Page 238 - The [Trend].Redundancy parameter should say 1(enable), 0(disable.
2.2 Relative Paths
When citect runs the current directory is set to the \citect\bin directory. This directory contains citect EXE files, DLL's and other internal data. You should not write data into this directory. If you specify a simple file name, one with no path, in the device database or other file function, that file will be opened in the \citect\bin directory. To solve this problem CITECT supports relative paths in the device database, trend database and any function which uses a file name, eg FileOpen, DspFileSetName, etc. The following relative paths are supported:
Prefix Physical Path
[data] x:\citect\data
[bin] x:\citect\bin
[run] x:\citect\user\<database>
To use a relative path to put a file in the x:\citect\data directory specify [data]:filename.txt. For example if CITECT is installed on the drive C: and the demo database is installed:
Relative Path Physical Path
[bin]:test.txt c:\citect\bin\test.txt
[run]:test.txt c:\citect\user\demo\test.txt
[data]:test.txt c:\citect\data\test.txt
You should use relative paths where possible as they make your database more portable. Eg if you move you database from drive C: to drive D: you will not have to change any device, trend or open function call.
2.3 Netware Lite Configuration V1.0
Note Netware Lite can only be used with Windows Version 3.1 (or later) and Dos Version 5.0 (or later).
To configure a Netware Lite Network for Citect:
Modify the AUTOEXEC.BAT file as follows:
SERVER MACHINE
C:\WINDOWS\SMARTDRV.EXE 2048 2048
SET PATH=C:\DOS;C:\WINDOWS;C:\NWLITE;F:\CITECT\BIN
PROMPT (NWLITE) $p$g
CD NWLITE
LOADHIGH LSL
LOADHIGH NE2000
LOADHIGH IPXODI A
LOADHIGH SHARE /L:40 /F:4096
LOADHIGH SERVER
LOADHIGH CLIENT
LOADHIGH NETBIOS
LOADHIGH DEDICATE
NET LOGIN SUPERVISOR
NET MAP F: CDRIVE
CD \WINDOWS
Modify the CONFIG.SYS file as follows:
BUFFERS=10
FILES=200
DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB
SHELL=c:\command.com c:\ /p /e:1000
STACKS=9,256
LASTDRIVE=M
CLIENT MACHINE
C:\WINDOWS\SMARTDRV.EXE 2048 512
SET PATH=C:\DOS;C:\WINDOWS;C:\NWLITE;F:\CITECT\BIN
PROMPT (NWLITE) $p$g
CD NWLITE
LOADHIGH LSL
LOADHIGH NE2000
LOADHIGH IPXODI A
LOADHIGH SHARE
LOADHIGH CLIENT
LOADHIGH NETBIOS
NET LOGIN SUPERVISOR
NET MAP F: CDRIVE
NET TIME
CD \WINDOWS
Modify the CONFIG.SYS file as follows:
BUFFERS=10
FILES=60
DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB
SHELL=c:\command.com c:\ /p /e:1000
STACKS=9,256
LASTDRIVE=M
When using Netware Lite you must choose either "No Network Installed" or "Microsoft 100% LAN Compatible" in the Windows setup.
The IPXODI.COM and LSL.COM supplied with Windows should be used with Netware lite, on all Machines.
Do not use INT 2, INT 9 or above and do not use a base I/O address below 300 for your LAN card unless you use VPICDA.386, - available from either Microsoft or Novell.
Use the NET setup utility to increase the number of client tasks in the Netware lite server configuration by 20 for each client connected.
Windows should be installed on the local drive of each Client and Citect can be loaded from the Server.
2.4 Additional Report Format Specifiers
{FF} Form Feed
2.5 Printers and Form Feeds.
The Windows print manager has been designed for page based printers, eg Laser printers and shared network printers. The print manager will not print anything on the printer until the entire page is complete then it will print the entire page. This is the best way when printers are shared on a network as it stops output from different uses becoming mixed.
However this is not what you want for alarm and keyboard logging. If you send alarm logging to this type of printer Citect will flush the data to the printer when the current page is full or the [DEVICE].FlushTime (default to 10 seconds) time has passed. So if you have one alarm occuring per minute, each alarm will be printed on a new page.
You may bypass the windows print manager by writing the output as a file. Set the device type to 0 (ASCII File) and specify the file name as LPT1.DOS, LPT2.DOS or LPT3.DOS. When you log to this device the data will be printed immediately on the printer with no extra form feeds.
For correct logging operation you should reserve one printer to be you logging printer, this should be a local printer and not on the network server. You may send any other non logging printouts, eg reports etc to a shared network or local printer.
3 Cicode Reference (Manual Revision 1.0)
3.1 Cicode Reference - Errata
Page 27 - The example is wrong. WHILE Current > 0 DO should be WHILE Current >= 0 DO, as the alarm record functions will return -1 for failure not 0.
Page 49 - The function ConstPi() function should read Pi().
Page 189-190 - The function TimeSecond should be TimeSec and the function TimeMinute should be called TimeMin.
Page 201 - The examples for the TrnGetTable() function should read as below. This function returns trend data at second period not minutes. Also the first element in the array must be passed, not just the name of the array.
Examples
REAL TrendTable1[100];
/* Defines an array of a maximum of 100 entries where the trend data is stored.
*/
TrnGetTable("OP1",
StrToDate("18/12/91")+StrToTime("09:00"),
2,10,TrendTable1[0]);
/* The values of trend tag "OP1" is stored in
Table TrendTable1.Data is stored at the
following times:
18/12/91 09:00:00 TrendTable1[0]
08:59:58 TrendTable1[1]
08:59:56 TrendTable1[2]
.
.
18/12/91 08:59:42 TrendTable1[9] */
Average=TableMath(TrendTable1[0],100,2);
! Get the average of the trend data.
Page 205 - The TrnSetPen() function should read;
Syntax TrnSetPen(AN,Pen,Tag)
AN The AN where the trend is located.
Pen The trend pen number:
-2 The first available pen
0 The pen currently in focus.
1...8 Pen1...Pen8.
Tag Trend tag.
If Trend Tag = ! then the Pen will be deleted.
Page 201-208 - When passing arrays to functions you must pass the first variable you want to access, not just the name of the array.
INT array1[10];
fn(Array1[0]); ! for the start of the array
fn(Array1[5]); ! start at 6th element
Page 214 - The WinNewAt() now supports an extra mode (16). This mode should only be used with child windows, eg mode 1 and 2. When enabled the keyboard echo, any prompts and error messages will be displayed on the parent window.
Page 214 - The example shows calling the function WinNew, this should be WinNewAt. Mode 4 should read, 'no maximize, minimize or system icons'.
Page 219 - The name of the third argument in the syntax should be value not default:
WndPutProfile(Group, Parameter, value)
Page 220 - The example shows the 0 parameter in the wrong function, should be as follows:
WndShow(WndFind("Microsoft Excel"), 0);
Page 226 - The following new Cicode error codes have been added:
303 INVALID AN The AN specified in the function is not defined.
304 FILE SERVER FAIL The citect has detected a file server fail condition and will switch to the standby file server.
305 AN CONFLICT Animation in conflict, you are trying to display two different types of animation on the same AN. For example a bar graph and a symbol.
306..308 RESERVED These error codes reserved for future version.
309 TREND DATA GATED The trend data requested was gated by the trigger expression.
3.2 New Cicode Functions
The following cicode functions were added after the cicode manual was printed.
AlarmClear()
Description Clears Alarms. Clears an acknowledged an off alarm from the active alarm list. If the alarm parameter "AckHold" is set to 1 alarms that go off and have been acknowledged will not be removed from the active list until this clear function is called.
Syntax AlarmClear(Mode, Value)
Mode.......The type of clear:
0........Clear a single alarm
The alarm where the cursor is positioned is cleared.
Value is not used and should be set to 0.
1........Clear a page of alarm
Set Value to the AN where the alarm list is displayed.
To clear the displayed page of all currently displayed
alarm lists, set Value to -1. To clear the displayed page
of the alarm list where the cursor is positioned, set Value
to 0.
2........Clear a category of alarms
Set Value to the alarm category (0-255) of the alarms to
be cleared. The alarm category 0 implies all categories.
Value can also be a group handle if a group of categoris is
to be disabled.
Value....Used in conjunction with Mode to specify the alarms to clear.
Examples [System Keyboard]
Key Sequence Clear
Command AlarmClear(2,0)
Comment Clear all categories of inactive alarms.
AlarmDspLast()
Description Displays the last unack alarms on the screen. You should use this function to display the last alarms on every page or whatever pages you require. This function uses less memory than the AlarmDsp function which should only be used for the alarm page.
Syntax AlarmDspLast(hAn, count, type)
hAn.......animation number to display last alarm
count....number of alarms to display. This argument is optional and if not specified will default to 1.
type.....Type of alarm to display(see AlarmDsp).
This argument is optional and if not
specified will defalt to 1.
Examples
! Display the last active alarms on AN 10
AlarmDspLast(10);
AlarmGetFieldRec()
Description Gets alarm field data from the alarm record number. This function can only be called on the alarm server.
Syntax AlarmGetFieldRec(record, sField)
record.....Alarm record number
sField......Alarm field name
Examples
FUNCTION
GetNameFromTag(STRING sTag)
INT record;
STRING sName;
record = AlarmFirstTagRec(sTag, "", "");
IF record <> -1 THEN
sName = AlarmGetFieldRec(record,"NAME");
ELSE
sName = "";
END
RETURN sName;
END
AlarmSetThresholdRec()
Description Changes the threshold of analog alarms by the alarm record number. This function can only be called on the alarm server.
Syntax AlarmSetThresholdRec(rec, type,value)
rec........alarm record number
type.......threshold to change (see AlarmSetThreshold)
value......new value to set
Examples
AlarmSumAppend()
Description Appends a new blank record to the alarm summary. The {ONTIME} {OFFTIME} etc. data will have to be set using the AlarmSumSet() function.
Syntax AlarmSumAppend(sTag)
sTag.......Alarm tag to append.
Examples
! Append alarm to summary display
AlarmSumAppend("CV101");
CodeSetMode()
Description Set the execution mode of cicode tasks. This allows controling the write to local PLC image mode, the range check on the configured scales and echo error messages to user.
Syntax CodeSetMode(type, value)
type..............type of mode
0...Write to local PLC image
1...Check scales on write
2...Echo error message to user
value.............value of the mode, 0 disable 1 enable
Examples ! disable local image write
CodeSetMode(0, 0);
ClipCopy()
Description Copies a string to the windows clipboard. Once the string is in the clipboard any window program may paste the string.
Syntax ClipCopy(sText)
sText..............string to copy
Examples ClipCopy("put this in clipboard");
ClipPaste()
Description Pastes a string from the windows clipboard. If the clipboard is empty then a empty string will be returned.
Syntax ClipPaste()
Examples ! Get string from clipboard into sText
sText = ClipPaste();
ClipWriteLn()
Description Writes a line of text to the windows clipboard. This function allows you to write many lines of text to the clipboard. Call this function to write each line of text then pass a empty string to tell citect to write all the data into the clipboard.
Syntax ClipWriteLn(sText)
sText..............line to write, empty to close
Examples ClipWriteLn("first line of text");
ClipWriteLn("second line of text");
ClipWriteLn(""); ! complete write
ClipReadLn()
Description Reads a line of text from the windows clipboard. This function allows you to read many lines of text from the clipboard. Call this function to read each line of text from the clipboard. When the end of the clipboard is reached a empty string will be returned.
Syntax ClipReadLn()
Examples ! Get first line of text from clipboard
sText = ClipReadLn();
WHILE StrLength(sText) > 0 DO
! do something with text
...
! read next line of clipboard
sText = ClipReadLn();
END
DspTrendInfo()
Description Get information on a trend definition.
Syntax DspTrendInfo(hTrend, type)
hTrend...........trend number
type...............type of trend info
0 type of trend 0 = line, 1 = bar
1 number of samples in trend
2 pixel height of trend
3 pixel width of trend
4 number of trend pens
Examples ! get the number of samples for trend 3.
nSamples = DspTrendInfo(3, 1);
DevHistory()
Description Creates a history file for the given device. The current device file is closed and renamed to be a history file, then a new file is created.
Syntax DevHistory(hDev)
hDev............Device Number
Examples ! create history file
DevHistory(hDev);
DevContro()
Description Control the device in a device specific way. The type and the data are dependent on what type of device is. dBase devices may be packed to physical remove deleted records or reindexed to regenerate the keys.
Syntax DevControl(hDev, type, sData)
hDev..............Device Number
type...............Type of command
Ascii device
not supported
dBase devices
0...reindex the device
1...pack the database file
Printer devices
not supported
sData.............Command data
Examples ! pack a dBase file device
DevControl(hDev, 1, "");
DevZap()
Description Zaps the given device number. If a database device all the records are deleted from the current database. If an ASCIIZ file the ASCIIZ file is truncated to 0 length.
Syntax DevZap(hDev)
hDev..............Device Number
Examples ! delete all records in database
DevZap(hDev);
ErrInfo()
Description Get error information. Returns extened error information on the last error that occured.
Syntax ErrInfo(type)
type................Type of error information
0 = animation number of error
Examples ! get animation number last error occured
hAn = ErrInfo(0);
FormGoto()
Description Goto the given form number. The form will be displayed on top of all windows and the keyboard focus will be set to this form.
Syntax FormGoto(hForm)
hForm...............Form number
Examples FormGoto(hForm)
FormPosition()
Description Sets the position of a form on the screen, before it is displayed. This function must be called after FormNew and before FormRead.
Syntax FormPosition(x, y, mode)
x......................X coordinate of form
y......................Y coordinate of form.
mode................future use, set to 0
Examples
hForm = FormNew("title", 20, 5, 0);
! display form at x=100, y=50
FormPosition(100, 50, 0);
GetPriv()
Description Get the current user privledge. This allows you to write cicode functions which can control access via the users current priv.
Syntax GetPriv(priv, area)
priv.................priv level (1..8)
area...............area of priv (0..255)
Examples ! user must have priv 2
IF GetPriv(2, 0) THEN
! do operation here
ELSE
Prompt("No priv for command");
END
GetEnv()
Description Get DOS enviroment variable.
Syntax GetEnv(sName)
sName...............name of enviroment variable.
Examples sPath = GetEnv("Path");
! get the current DOS path
LogoutIdle()
Description Set a idle time logout for the current user. If the current user does not execute a command for the given time, the user will be prompted. If the prompt is ignored then the user will be logged out. The idle time is specified in minutes, Specify -1 to disable the current logout timeout. Call this function from the Entry Command in the User database to specify each users individual idle times, or at startup if all users have the same idle time.
Syntax LogoutIdle(idle)
idle...............Number of minutes the user must be idle to be then logged out.
Examples LogoutIdle(20);
! Log the current user out after 20 minutes if no command is executed.
StrToValue()
Description This function is similar to the StrToReal() function except that the function halts if it is passed an empty string. This function is useful if you want to check keyboard input from the operator to set control points. Eg it stops a setpoint from being set to 0 if the operator hits ENTER by mistake.
Syntax StrToReal(String)
String The string to convert.
Examples
KEY SEQUENCE ######## ENTER
Command SP123 = StrToValue(arg1);
Comment Set Setpoint 123 to value unless invalid value
TimeMidNite()
Description This function converts the given time variable into the time at midnite of the given day (ie time at 0:0:0 of this day). This is useful when you must do calculations with the time and date.
Syntax TimeMidNite(time)
time The time variable.
Examples
timeNow = TimeCurrent();
! get the time variable at 7am today
time7am =TimeMidNite(timeNow) + 7*60*60;
IF timeNow > time7am AND timeNow < time7am + 10 THEN
Beep();
Prompt("Wake Up!");
END
UnitInfo()
Description This gets information on the given unit number.
Syntax UnitInfo(unit,type)
unit The unit number.
type The type of info.
0.....name of unit
1.....protocol of unit
2.....protocol address
3.....state, 1=running, 16=offline
4.....last generic error
5.....last driver error
6.....disabled flag
7.....statistics, min read time
8.....statistics, max read time
9.....statistics, avg read time
Examples
sName = UnitInfo(20, 0); ! get name of unit 20
WinPrintFile()
Description Prints the given file to the printer. The file must be saved from the WinFile() function. This allows you to save a file then print it later.
Syntax WinPrintFile(sFile, sPort)
sFile.............file name
sPort............Printer port name LPT1:
Examples
! save image to disk then print.
WinFile("temp");
! print to LPT1:
WinPrintFile("temp", "LPT1:");
WndPutFileProfile()
Description Put a profile string into any INI file.
Syntax WndPutFileProfile(sGroup, sName, sData, sFile)
sGroup...............name of group
sName...............name of variable
sData.................variable data
sFile...................INI file name
Examples WndPutFileProfile(Name(), "What", "100", "USER.INI");
WndGetFileProfile()
Description Get a profile string from any INI file.
Syntax WndGetFileProfile(sGroup, sName, sDefault, sFile)
sGroup...............name of group
sName...............name of variable
sDefault..............default value
sFile...................INI file name
Examples
! get this user startup page from
! USER.INI File
sStartup = WndGetFileProfile(Name(), "Startup", "menu", "USER.INI");
PageDisplay(sStartup);
4 Protocols (Manual Revision 1.0)
4.1 Protocols Volume 1 - Errata
Page 37 - AB protocol I/O PORT Data Highway address should be 0 to 77 Octal
When declaring PLC arrays or remap variables the size of the array or
citect variable must be less than the maximum request length of the protocol. See the table below for the maximum length for your protocol.
Protocol Maximum Bit size
KE 1920
KT 1920
GENIUS 1024
CCM 2048
MODBUS 2000
MBPLUS 1904
TIWAY 2048
TIDIRECT 240
SQUARED 2048
OMRON 464
RELIANCE 1952
TOSHIBA 512
OPTOMUX 256
MELSEC 512
TISERIAL 2048
SIEMENS 1024
4.2 EISA Computers
EISA computers have the facility to disable interrupts from boards which are not configured correctly via the EISA configuration utility. If you are having no response from a Hardware Card check you EISA configuration for that card. If you still get no response try another interrupt.
If the board which you are using requires to use an interrupt which is being used by a COM port, the EISA configuration will move the COM port to another interrupt but you must also disable this COM port.
4.3 PCXI Digiboard
Page 219. Jumpers J2, J3 must be set to the 64K position not the 128K position. Set both jumpers between pins 2 and 3.
4.4 COMXI Digiboard
Page 221. Jumpers J5 to J13 should be J5 to J14
5 Graphics Designer (Manual Revision 1.0)
5.1 Graphics Designer - Errata
5.2 Setting up the Graphics Designer
The graphic editor is a DOS application and so does not use the windows display drivers, it uses a driver called CITECT.DSP in the c:\citect\bin directory. When citect is setup the standard IBM VGA driver is installed. If you want to use another driver, copy from list below to the CITECT.DSP file. The mode of the graphic driver is set in the CITECT.INI file under [draw].mode. The following drivers are supplied with citect. For extra drivers contact Citect Techinical Support.
File Name Description Mode
AHDIBMV .DSP IBM VGA-EGA 6=EGA, 7 = VGA
AHDCMPQ.DSP Compaq 256 VGA 0=(640x480x256)
AHDTL4L.DSP Tseng ET-4000 2=(640x480x256)
3=(800x600x256)
4=(1024x768x256)
AHDIBMX.DSP IBM XGA 0=(640x480x256),
1=(1024x768x256)
AHDTIGA.DSP TIGA 2.0 0=(depends on card)
The printer driver is called CITECT.PRT in the c:\citect\bin directory. When citect is setup the printer driver is set to Epson Compatible 8 bin B/W printer. If you want to use another driver, copy from list below to the CITECT.PRT file. The setup of the printout is set in the file Printer Attribitue file CITECT.PAT, a PAT file is set up for each of the supplied printers. The following drivers are supplied with citect. For extra drivers contact citect techinical support.
File Name Printer Driver
AHDBW8.PRT Epson Compatible 8 pin B/W
AHDCO8.PRT Epson Compatible 8 pin Colour
AHDBW24.PRT Epson Compatible 24 pin B/W
AHDCO24.PRT Epson Compatible 24 pin Colour
AHDDJET.PRT Hewlett Packard Deskjet
AHDLJTP.PRT Hewlett Packard LaserJet
AHDPJET.PRT Hewlett Packard PaintJet
AHDPJXL.PRT Hewlett Packard PaintJet XL
To use the Hewlett packard LaserJet printer copy the printer driver and PAT file to the CITECT files. Note that all the files in the \citect\bin directory are read only, so you must first use the ATTRIB command to make them read/write. The following DOS commands will install the HP LaserJet Printer:
CD \CITECT\BIN
ATTRIB -R CITECT.PRT
ATTRIB -R CITECT.PAT
COPY AHDLJTP.PRT CITECT.PRT
COPY AHDLJTP.PAT CITECT.PAT
ATTRIB +R CITECT.PRT
ATTRIB +R CITECT.PAT
5.2.1 Printer Attribute File Format
The CITECT.PAT file controls the printout from the graphic editor. Most of the options may be set to -1 which means to take the default value. The file has the following format:
Line Description
0 Width of output in dots
1 Height of output in dots
2 Image orientation 0=normal, 1=landscape
3 Black/white reversal 0=yes,1=no
4 Threshold value 0..255
5 form feed 0=yes, 1=no
6 BIOS/DOS flag
7 Dots per inch (depends on printer)
8 Number of copies
9 Centering 0=yes, 1=no
10 X offset in dots
11 Y offset in dots
12 Printer ID
13 COM Port
14 Process ID for EMS
15 Bold Printing
16 Parallel port 0=LPT1,1=LPT2,2=LPT3
17 Image size
18 Colour Correction
19 Halftone method 0=no dither, 1=magic square
20 Hue adjustment
21 Saturation adjustment
22 Page size
23 Horizontal page size
24 Vertical page size
Related Links
Attachments