Post by tk096 on Some 'pathetic' errors in SoftMotion program
CODESYS Forge
talk
(Post)
Hi, I suppose that you are referring to the error code "SMC_FB_WASNT_CALLED_DURING_MOTION"? Starting of Softmotion version 4.15.0.0 the instance path of the function block that has not been called is logged into the device log. This might help you to identify why it has not been called.
Last updated: 2024-07-18
Post by davidb on Initialisation TimerSwitch of Util Codesys 3.5 Library
CODESYS Forge
talk
(Post)
jf89 Hello!Good morning You got it to use the function block Timer Switch for your application? I'm needing to do one system that turn on at 8:00am o' clock and turn off at 17:00pm o' clock, from Monday to Friday. Please, can you help me?
Last updated: 2024-10-14
Post by andrej on POU - Access to runtime
CODESYS Forge
talk
(Post)
Hello all, when creating a POU, the Codesys IDE allows the setting "Enable System Call" (in the Settings, Property -> Build), see picture. The name suggest, that runtime functionalities i.e. functions of codesyscontrol such as "stop plc" etc. can be directly called. I tried various approches without success, the following does, unsurprisingly not work. FUNCTION accessRTE: BOOL; ****************************** codesyscontrol.stop(); Can you please tell me how I can make a system call to codesyscontrol from a POU. Or could you provide me with a use case for this setting. Many thanks for your feedback and kind regards Andrej
Last updated: 2024-03-02
Post by grant32 on RAMP_REAL FB is retaining my output value when i try to re use the FB
CODESYS Forge
talk
(Post)
Hello, I'm relatively new to PLC programming. I am trying to creat a ramp down function, I have an example here of what I am using. I can get the function to work, the issue is that the OUT (variable3) value is being held by the FB so after I use it once it no longer works. In this example i set variable3 to 100 and the rest is as seen, over the course of a minute it ramped down to 10 (as desired). But when I deenergize TEST_START, set variable3 back to 100, and then re-energize TEST_START it immediately jumps back to the previously held value 10. The reset on this block just pauses the function and holds the last OUT. In my case I will need the function to start OUT at a set value, ramp down to the IN (variable2) value, and then accept a new OUT value to ramp down next time the block is energized. Hopefully this made sense, if anyone has any advice that would be awesome!
Last updated: 2024-07-29
Post by installwhat on Error, visualisation property handling, VISU_USEPROPERTYINFO
CODESYS Forge
talk
(Post)
same issue solved with this advice... thanks 3.5.19.5 project settings -> visualization -> advanced -...
Last updated: 2024-05-20
Post by timvh on How to implement an interface (IElement)?
CODESYS Forge
talk
(Post)
See: https://forge.codesys.com/prj/codesys-example/element-collect/home/Home/ This contains an application "OnlineChangeSafeLinkedListExample". What you should do is create a new interface which has your "Priority" property. Then your FB should extend the base element function block and implement your own interface: E.g. FUNCTION_BLOCK MyElement EXTENDS COL.LinkedListElementBase IMPLEMENTS I_MyInterface Then the __QUERYINTERFACE does the magic to check if your "element" also implements your interface. Something like this: // Compares this element with itfElement. // Returns 0 if the elements are equal, < 0 if the element is less than itfElement, // > 0 if the element is greater than itfElement. // This method will be called from sorted collections (e.g. |COL.SortedList|) to sort the elements. // IMPORTANT: The underlying value to be compared with MUST NOT be changed during the lifecycle of the object. METHOD ElementCompareTo : INT VAR_INPUT (* The element to compare*) itfElement : COL.IElement; END_VAR VAR itfIntElement : I_MyInterface; xResult : BOOL; END_VAR // We use integer iInt1 for sorting. xResult := __QUERYINTERFACE(itfElement, itfIntElement); IF xResult THEN IF iInt1 < itfIntElement.Priority THEN ElementCompareTo := -1; ELSIF iInt1 > itfIntElement.Priority THEN ElementCompareTo := 1; ELSE ElementCompareTo := 0; END_IF ELSE ElementCompareTo := -1; END_IF
Last updated: 2024-07-22
Post by alexgooi on Function Blocks and arrays of function blocks
CODESYS Forge
talk
(Post)
Hi Jack, I think you have to look at a FB in a different way. A Function block (Class) can contain its own data. In other words don't define loose data in your GVL, but define a instance of a FB (Object) in your GVL: Example: Function_Block Basic_Class VAR_INPUT Open_Command: BOOL; END_VAR VAR_OUTPUT Opened: BOOL; END_VAR if Open_Command then Opened := TRUE; ELSE Opened := FALSE; END_IF Global Variables Objects: ARRAY[1..100] OF Basic_Class; //Here you ar defining you objects END_VAR In your code you can directly acces the data and couple it to the IO: GVL.Objects[1].Open_Command := %IX0.0; %QX0.0 := GVL.Objects[1].Opened; //To call the code itself use: GVL.Objects[1](); If you want to take this a step further you are also able to add methods and properties to the FB/Class end thereby creating a OOIP program
Last updated: 2024-02-15
I want to use the function of PVT to realize move
CODESYS Forge
talk
(Thread)
I want to use the function of PVT to realize move
Last updated: 2013-05-14
Find Function: Object reference not set to an instance of an object.
CODESYS Forge
talk
(Thread)
Find Function: Object reference not set to an instance of an object.
Last updated: 2023-10-30
Can't get the IEC var address correcttly when using the function "IecVarAccGetAddress 2"
CODESYS Forge
talk
(Thread)
Can't get the IEC var address correcttly when using the function "IecVarAccGetAddress 2"
Last updated: 2018-12-25
How do I pass a array throught a function and return an array - Pointers
CODESYS Forge
talk
(Thread)
How do I pass a array throught a function and return an array - Pointers
Last updated: 2018-04-16
read SVN-revisions of project and library insinde a library function
CODESYS Forge
talk
(Thread)
read SVN-revisions of project and library insinde a library function
Last updated: 2018-05-16
Is it possible to create extensible Parameters in CODESYS ST function blocks?
CODESYS Forge
talk
(Thread)
Is it possible to create extensible Parameters in CODESYS ST function blocks?
Last updated: 2021-09-17
Very slow downloading of a project which has 10 000 function blocks
CODESYS Forge
talk
(Thread)
Very slow downloading of a project which has 10 000 function blocks
Last updated: 2018-03-05
Pass the second array dimension into a function as a parameter
CODESYS Forge
talk
(Thread)
Pass the second array dimension into a function as a parameter
Last updated: 2022-05-10
it is possible to add a function template to a program from scripting ...
CODESYS Forge
talk
(Thread)
it is possible to add a function template to a program from scripting ...
Last updated: 2018-05-25
How can you Toggle a Function BOOL input from a different POU?
CODESYS Forge
talk
(Thread)
How can you Toggle a Function BOOL input from a different POU?
Last updated: 2021-08-01
Disable SIL2 warning 'Safe POU call to non safe library function is not allowed'
CODESYS Forge
talk
(Thread)
Disable SIL2 warning 'Safe POU call to non safe library function is not allowed'
Last updated: 2019-03-28
Extending a library function in an application and getting Interface conversion errors
CODESYS Forge
talk
(Thread)
Extending a library function in an application and getting Interface conversion errors
Last updated: 2020-06-03
There is an error When calling IecTaskGetInfo3 with the RTS_IEC_HANDLE from SchedGetTaskHandleByName function
CODESYS Forge
talk
(Thread)
There is an error When calling IecTaskGetInfo3 with the RTS_IEC_HANDLE from SchedGetTaskHandleByName function
Last updated: 2017-09-11
How to initialize arrays of function blocks that need FB_Init to work
CODESYS Forge
talk
(Thread)
How to initialize arrays of function blocks that need FB_Init to work
Last updated: 2020-08-21
Can I use the "High Speed Counter" function on Raspberry PI.
CODESYS Forge
talk
(Thread)
Can I use the "High Speed Counter" function on Raspberry PI.
Last updated: 2017-05-09
I would like to make use of PWM function on my Raspberry pi with CODESYS.
CODESYS Forge
talk
(Thread)
I would like to make use of PWM function on my Raspberry pi with CODESYS.
Last updated: 2020-07-09
Post by niloufar on Execution Order of Function Blocks
CODESYS Forge
talk
(Post)
Hi, Our program incorporates various function blocks and programs written in different languages such as St and SFC. They implement numerous actions and methods using different languages from their function blocks. My question is whether the execution order of function blocks is associated with the programming languages used. I understand that cycle time can be configured in the task configuration, but I'm curious if there is a specific sequence order of execution for function blocks written in different languages. For example, all function blocks in (ST) are executed first, followed by the execution of (SFC). Specifically, when the function is written in (ST) and the action is implemented in (SFC). I modified all function blocks in the main PLC program and configured a task configuration for the main program.
Last updated: 2023-12-13
Cannot pass array of constant size to a function as a reference
CODESYS Forge
talk
(Thread)
Cannot pass array of constant size to a function as a reference
Last updated: 2024-01-09
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND
or OR
.