Software Tools

Problem

An ISaGRAF program would compile fine without any errors but would fail when trying to upload it to a controller. Th eupload would make it to 100% and then come back reporting "Function block not implemented [22]"

Fix

The original program was developped for a SP32 and then the project was modified for a SP LP. The IO connections were modified for the new controller type.
But the dictionary had a FBinstance for stMaster IP calling masterip, one of our functions using the LAN port. Once this was deleted and the project was recompiled, everything loaded fine.

Below is the full list of ISaGRAF error codes.
1. cannot allocate memory for run time data base No memory available. Check the hardware.
2. incorrect application data base (Motorola/Intel) The application file, downloaded or backed up is not correct. This error appears if the
application is generated for INTEL and downloaded on MOTOROLA (and reverse) or if the file
has been altered.
3. cannot allocate communication mailbox This error is produced by the communication task if it cannot allocate space 3 for inter task
communication.
4. cannot link kernel data base This error is produced by the communication task if it cannot find a kernel running with the
slave number specified in its command line.
5. time-out sending question to kernel The communication task cannot send a request to the kernel. The kernel is probably not
running or busy.
6. time-out waiting answer from kernel The communication task cannot receive an answer from the kernel. The kernel is probably not
running or busy.
7. cannot init communication This warning is produced when the communication layer cannot initialize the physical link.
This warning is also displayed if no communication path is specified. This does not prevent
the target from running correctly, but it cannot communicate.
8. cannot allocate memory for retained variables ISaGRAF cannot manage retained variables. There may be two reasons for such a problem:
  • the string passed as a parameter to the host target is not syntactically correct
  • the size of memory specified for each block is not sufficient
    You have to verify the syntax of your ‘retain variable’ parameter, and you can try with a
    reduced number of retained variables.
9. application stopped This warning is produced every time the application is stopped from the debugger.
10. too many simultaneous N or P actions This error occurs if one of the target cycles has to execute too many non-stored, pulse actions
or cyclic blocks. It is possible to locate the trouble in CC mode. The maximum number of
simultaneous actions is 2 + 4 per SFC program.
11. too many simultaneous setting actions This error occurs if one of the target cycles has to execute too many setting actions (executed
when a step becomes active). Proceed as mentioned above.
12. too many simultaneous resetting actions This error occurs if one of the target cycles has to execute too many resetting actions
(executed when a step is de-activated). Proceed as mentioned above.
13. unknown TIC instruction The kernel has detected something wrong in the application code (called Target Independent
Code), in a program. There are two possible explanations:
  • an external program is probably writing into application code. Try to locate the crash in CC
    mode and make sure no IO interface has wrong parameters.
  • your target has a reduced set of instructions, and your application uses a non-authorized
    instruction or variable type.
16. cannot answer read data request A communication error is detected answering specific ISaGRAF Modbus request function
code 18 (file read). Check connection and system configuration on both target and master
sides.
17. cannot answer write data request A communication error is detected answering specific ISaGRAF Modbus request function
code 17 (file write). Check connection and system configuration on both target and master
sides.
18. cannot answer debugger session request A communication error is detected answering a debugger request. Check connection and
system configuration on both target and master sides.
19. cannot answer modbus request A communication error is detected answering a Modbus request. Check connection and
system configuration on both target and master sides.
20. cannot answer debugger application request A communication error is detected answering a debugger request. Check connection and
system configuration on both target and master sides.
21. cannot answer debugger A communication error is detected answering a debugger request. Check connection and
system configuration on both target and master sides.
23. unknown request code A debugger request makes no sense.
24. Ethernet communication error This appears each time the connection is closed when the debugger is closed: the system is
working OK. Otherwise it means that an Ethernet communication error is detected. Check
connection and system configuration on both target and master sides.
A second field is given, it can be:
1: error while sending or receiving
2: error while creating the socket
3: error while binding or listening the socket
4: error while accepting a new client
25. communication synchro error Bad synchronization between the communication task on the target and the master. Check
connection and system configuration (communication parameters) on both target and master
sides.
28. cannot allocate memory for application No memory available. Check the hardware, according to the size of the application.
29. cannot allocate memory for application update No memory available. Check the hardware, according to the size of the application.
30. unknown OEM key code The application is using a board which manufacturer code is not recognized by the target.
Check the I/O connection in the workbench and use ’VIRTUAL’ attribute to locate the incorrect
board. Your workbench library may not correspond to your target version.
31. cannot init boolean input board A Boolean input board init has failed. Check the I/O connection in the workbench and the
parameters of your Boolean input boards.
32. cannot init analog input board An analog input board init has failed. Check the I/O connection in the workbench and the
parameters of your analog input boards.
33. cannot init message input board A message input board init has failed. Check the I/O connection in the workbench and the
parameters of your message input boards.
34. cannot init boolean output board A Boolean output board init has failed. Check the I/O connection in the workbench and the
parameters of your Boolean output boards.
35. cannot init analog output board An analog output board init has failed. Check the I/O connection in the workbench and the
parameters of your analog output boards.
36. cannot init message output board A message output board init has failed. Check the I/O connection in the workbench and the
parameters of your message output boards.
37. cannot input boolean board An error has been detected while refreshing a Boolean input board. Check the I/O connection
in the workbench and board parameters.
38. cannot input analog board An error has been detected while refreshing an analog input board. Check the I/O connection
in the workbench as well as board parameters.
39. cannot input message board An error has been detected while refreshing a message input board. Check the I/O connection
in the workbench and board parameters.
40. cannot output boolean output variable An error has been detected while updating an output Boolean variable. Check the I/O
connection in the workbench and board parameters.
41. cannot output analog output variable An error has been detected while updating an output analog variable. Check the I/O
connection in the workbench and board parameters.
42. cannot output message output variable An error has been detected while updating an output message variable. Check the I/O
connection in the workbench and board parameters.
43. cannot operate boolean variable An error has been detected executing an OPERATE call to a Boolean variable. Verify your
OPERATE parameters and board user’s note.
44. cannot operate analog variable An error has been detected executing an OPERATE call to a analog variable. Verify your
OPERATE parameters and board user’s note.
45. cannot operate message variable An error has been detected executing an OPERATE call to a message variable. Verify your
OPERATE parameters and board user’s note.
46. cannot open board The application is using a board reference, which is unknown in the target. Check the I/O
connection in the workbench. Your workbench library may not correspond to your target version.
47. cannot close board The application is using a board reference, which is unknown in the target. Check the I/O
connection in the workbench.
50. cannot overwrite boolean output variable Two SFC sequences are writing the same Boolean output variable in the same target cycle.
This should be avoided to prevent hazardous behavior of the I/Os. In case of such a conflict,
the priority is given to the highest program in the hierarchy. If the two SFC programs are
located at the same level, the result is unpredictable.
51. cannot overwrite analog output variable Two SFC programs are writing the same analog output variable in the same target cycle. See
above comment.
52. cannot overwrite message output variable Two SFC programs are writing the same message output variable in the same target cycle.
See above comment.
61. unknown system request code A program is using the SYSTEM call with an invalid code.
62. sampling period overflow The target cycle period is longer than specified in the workbench menu.
On a multitasking system, this means that there is not enough CPU time to execute a cycle,
even if the ‘current cycle duration’ is less than the specified period.
On a single task system, this always means that there are too many operations in one of the
target cycle.
There are many possible ways to remove this warning:
− reduce the number of operations performed at the instant where the warning is detected.
− reduce number of tokens, of valid transitions, optimize complex processing, etc.
− reduce other tasks CPU load to give more time to ISaGRAF.
− reduce communication traffic to give more time to ISaGRAF.
− use dynamic cycle duration modification to adapt the cycle duration to different process
stages.
− set cycle duration to zero to let the ISaGRAF kernel run as fast as possible, without any
overflow checking.
63. user function not implemented A program is using a C function, which is unknown in the target. Your workbench library may
not correspond to your target version.
64. integer divided by zero A program tries to divide an integer analog by zero. Your application should prevent such an
event, which may have unpredictable effects.
When this occurs, ISaGRAF places the maximum analog value as the result.
When the operand is negative, the result is inverted.
65. conversion function not implemented A program is using a C conversion function, which is unknown in the target. Your workbench
library may not correspond to your target version.
When this occurs, ISaGRAF does not convert the value.
66. function block not implemented A program is using a C function block, which is unknown in the target. Your workbench library
may not correspond to your target version.
67. standard function not implemented A program is using a function block, which is unknown in the target, although it is supposed to
be available on most targets. Ask your supplier.
68. real divided by zero A program tries to divide a real analog by zero. Your application should prevent such an
event, which may have unpredictable effects.
When this occurs, ISaGRAF places the maximum real analog value as the result.
When the operand is negative, the result is inverted.
69. invalid operate parameters Your application uses an OPERATE call with wrong parameters. The compiler normally filters
this. It could be a timer parameter, or a variable which is not an input or output.
72. application symbols cannot be modified Trying to make an application update, the modified application cannot be started because the
symbols are different. One or more variables or instances of function blocks may have been
added, removed or modified, compared to the current application.
73. cannot update: different set of boolean variables The modified application cannot be started because some Boolean variables have been
added or removed, compared to the current application.
74. cannot update: different set of analog variables The modified application cannot be started because some analog variables have been added
or removed, compared to the current application.
75. cannot update: different set of timer variables The modified application cannot be started because some timer variables have been added or
removed, compared to the current application.
76. cannot update: different set of message variables The modified application cannot be started because some message variables have been
added or removed, compared to the current application.
77. cannot update: cannot find new application The modified application cannot be found in memory, something wrong may have happened
during the download.