Programs can be compiled by selecting the appropriate option under the Debug menu. Additionally, the IDE will automatically compile the program, if necessary, before simulating, emulating, and uploading.
While compiling, the IDE will display a dialog with the compile's status. Compiler warnings will be displayed in the bottom portion of the dialog. Fatal errors are displayed in their own dialogs.
Possible memory overflow into Xfer ports.
This warning is raised to indicate that the memory used by variables and calculations could potentially overflow into the memory used by the Xfer ports. The additional information supplied with this warning will help you diagnose whether or not you should be concerned.
Raised when a syntax error is encountered.
This error generally indicates an error in the parameters passed to a function. The error text should explain what was expected.
Raised when an expected connection cannot be found.
This error appears when the blocks in a flowchart are not connected correctly. The most common causes are:
Raised when insufficient RAM exists to allocate variables.
This error indicates that your program uses too many variables. The best way to work around this error is to go through your variables one by one and determine if any are not needed.
In such cases, you can usually find variables that have been defined but are not needed. Alternatively, you may be able to use the same variable in multiple places. Ask yourself how long each saved value is needed.
Raised when the code doesn't match the expected syntax.
This is probably the most common error you will encounter. Almost every type-o will cause a ParseError. The row and column indicators will indicate where the compiler got confused.
Raised when a constant is out of range.
The IDE compiler only supports 16-bit integers. Make sure any constant you use is within the range -32,768 to 32,767.
Raised when the user tries to write to a read-only token.
Various ports, such as DI, are read-only and cannot be written to.
Raised when a token is defined multiple times.
This error indicates that you have defined multiple variables or labels with the same name. Either locate the erroneous defintion and remove it, or change one of the definitions to a new name.
Raised when a reserved word is used inappropriately.
The most common cause for this error is naming a variable or label by one of the language's reserved words:
abs | ADC | ADC_A |
ADC_B | ADC_C | ADC_D |
ADC_raw | and | break |
case | Commas | const |
continue | Count | DAC |
DAC_B | DAC_D | default |
DI | DO | do |
else | end | for |
FormatInt | FSign | goto |
if | int | MBGetDI |
MBGetDO | MBGetErr | MBGetHold |
MBGetInput | MBPutDO | MBPutHold |
ModbusAddr | not | or |
ParseInt | Pulse | RightJ |
SerialIn | SerialOut | start |
stop | string | switch |
timer | until | wait |
while | Width | Xfer |
ZeroF |
Raised when a label is used but not defined.
This error indicates that you have a goto command that refers to a label that was not defined. The most common causes of this error are type-o's and errors in capitalization. Remember, the IDE is case sensative, so make sure that you don't define a loop as:
LOOP:
and then refer to it with:
goto Loop;
Raised when a variable is used but not allocated.
This is a pretty easy error to correct. Identify the undefined variable from the error message text and add a definition for it.
Raised when an object exists but isn't connected to the main program.
This error is similar to the ConnectionError. Make sure there is a path from the Start block to every other block in the program.
Raised when a variable has the wrong type.
This error can be raised in a wide variety of instances, but the root cause is that the compiler was expecting a value of one type and yet it found a different type.
The most common cause for this error is from trying to output an integer value over the serial port without using the FormatInt function to convert it to text.