Post by farren on How to stay in a method until something is finished.
CODESYS Forge
talk
(Post)
I know I'm thinking about this wrong -- too many decades of procedural and event-driven programming and only a few months of PLC ST programming...... I've created a visualization with a button that when pushed calls a method. I want the method to take a pressure reading, wait one minute and then take another pressure reading. I'm looking for leaks. I'm using TON for the delay. It seems like what is happening is that the method gets called once and it takes the first reading and starts the TON. But then execution continues, leaves that method call, and the second reading never happens. I can force the method to keep running until the whole thing is done with a While loop, but I understand that is considered BAD in PLC programming. If it push the button again to call the method again, it picks up where it left off and if the timer is complete then it runs the remaining code. How do I keep that method running until it is complete with just one call without using a while loop that ties up the PLC for a minute? Thanks! -Farren
Last updated: 2025-10-31
Post by ducng on SMC_FB_WASNT_CALLED_DURING_MOTION when enable MC_MoveRelative
CODESYS Forge
talk
(Post)
Hello, I am using an Inovance PLC to control a servo via EtherCAT. When I enable MC_POWER, the drive switches to Run mode successfully. After that I call MC_MoveRelative, but I get the error SMC_FB_WASNT_CALLED_DURING_MOTION. The servo vibrates but the motor shaft does not move. I am new to EtherCAT/servo motion control, so I would appreciate any guidance or suggestions for troubleshooting this issue. Thank you in advance for your help.
Last updated: 2025-11-02
Post by ben1 on How to stay in a method until something is finished.
CODESYS Forge
talk
(Post)
Why must you use a method? Top of my head can't you just use the button to turn on a bit and use it in a normal task? Just turn a bit on with the button, and run a TON from it in code, and turn it back off with the ton. And then just log the pressure on both the rising & falling edge?
Last updated: 2025-11-03
Post by gseidel on SMC_FB_WASNT_CALLED_DURING_MOTION when enable MC_MoveRelative
CODESYS Forge
talk
(Post)
Hi ducng, please make sure to call all Motion-FBs in the EtherCAT task. In your case, the PLC_PRG should be below the EtherCAT task, not the MainTask. Best regards, Georg
Last updated: 2025-11-03
SMC_FB_WASNT_CALLED_DURING_MOTION when enable MC_MoveRelative
CODESYS Forge
talk
(Thread)
SMC_FB_WASNT_CALLED_DURING_MOTION when enable MC_MoveRelative
Last updated: 2025-11-03
Post by gcodejedi on The element of type 'VisuFbElemImage' could not be updated. Reason: Index was outside the bounds of the array.
CODESYS Forge
talk
(Post)
Hello, I am experiencing this exact same issue. Were you able to get yours resolved? If so, would you mind sharing the solution you discovered? Thanks!
Last updated: 2025-11-03
The element of type 'VisuFbElemImage' could not be updated. Reason: Index was outside the bounds of the array.
CODESYS Forge
talk
(Thread)
The element of type 'VisuFbElemImage' could not be updated. Reason: Index was outside the bounds of the array.
Last updated: 2025-11-03
Modern Learning Approaches for Evidence-Based Nursing
CODESYS Forge
talk
(Thread)
Modern Learning Approaches for Evidence-Based Nursing
Last updated: 2025-11-03
Innovating Care Delivery Through Smarter Education
CODESYS Forge
talk
(Thread)
Innovating Care Delivery Through Smarter Education
Last updated: 2025-11-03
Post by davidbo on How to stay in a method until something is finished.
CODESYS Forge
talk
(Post)
You never stay in a method. You need a block to do that. Something like: VAR button:BOOL:=FALSE; count:UINT:=0; END_VAR IF button THEN //read pressure count:=count+1; IF count>1 THEN button:=FALSE; count:=0; END_IF END_IF
Last updated: 2025-11-04
How to stay in a method until something is finished.
CODESYS Forge
talk
(Thread)
How to stay in a method until something is finished.
Last updated: 2025-11-04
Post by davidbo on How to stop dhcpcd and use SysSockSetIpAddressAndNetMask to set address?
CODESYS Forge
talk
(Post)
It is stated: "Dynamic ip address, provided by DHCP, BOOTP, etc. Cannot be changed by SysSockSetIpAddressAndNetMask()" Therefore I try to stop dhcpcd and flush the eth0 like this VAR CONSTANT flushIP:STRING:='sudo ip addr flush dev eth0'; stopDHCP:STRING:='sudo systemctl stop dhcpcd'; END_VAR SysProcessExecuteCommand2(pszCommand:=stopDHCP, pszStdOut:=stdout,udiStdOutLen:= SIZEOF(stdout),pResult := ADR(Result)); SysProcessExecuteCommand2(pszCommand:=flushIP, pszStdOut:=stdout,udiStdOutLen:= SIZEOF(stdout),pResult := ADR(Result)); Besides losing the connection when flush occurs the CODESYS halts, seen on the display and I cannot see why, because I have lost the connection from my IDE. Why does the flush command halt the execution of the application?
Last updated: 2025-11-04
How to stop dhcpcd and use SysSockSetIpAddressAndNetMask to set address?
CODESYS Forge
talk
(Thread)
How to stop dhcpcd and use SysSockSetIpAddressAndNetMask to set address?
Last updated: 2025-11-04
Post by davidbo on What is the prerequisites for a Raspberry Pi to work with SysSockSetIpAddressAndNetMask()
CODESYS Forge
talk
(Post)
I have done: systemctl stop dhcpcd sudo ip addr flush dev eth0 sudo ip link set eth0 up but a call to SysSockSetIpAddressAndNetMask does not give the eth0 an IP address Why?
Last updated: 2025-11-04
Post by davidbo on How to stop dhcpcd and use SysSockSetIpAddressAndNetMask to set address?
CODESYS Forge
talk
(Post)
The reason for why CODESYS halts was a CODESYS watchdog exception. 'sudo ip' takes a long time.
Last updated: 2025-11-04
Post by mg0815 on ERROR: Calling the program "AlarmStorage_Prg" is not allowed from multiple tasks
CODESYS Forge
talk
(Post)
I use Codesys 3.5.21.1 too I have absolutelly the same fault. Do you know the solution? I get the same massages accept the last one (up to your's from 2025-08-03 04:38) The last messages do not appear. (your's later than 2025-08-03 04:40) Reagards Mg
Last updated: 2025-11-04
Post by mg0815 on ERROR: Calling the program "AlarmStorage_Prg" is not allowed from multiple tasks
CODESYS Forge
talk
(Post)
...
Last updated: 2025-11-04
Post by kalmeyer on Stepper motor control with (SM_Drive_RaspStepper_direct)
CODESYS Forge
talk
(Post)
HERE IS MY PLC_PRG /KLAUS
Last updated: 2025-11-04
Post by kalmeyer on Stepper motor control with (SM_Drive_RaspStepper_direct)
CODESYS Forge
talk
(Post)
Hi Helpers I'm trying to work with stepper motor on Rasp 5 for the first time. So I'm pretty new.😥here. I've used: https://forge.codesys.com/drv/sm3raspistepper/home/Home/ but I get the following error when I insert. I also get 6 errors when I "rebuilder" after installering "SM_Drive_RaspStepper_direct" from the tree. Hope there is help for me. Thanks in advance /Klaus
Last updated: 2025-11-04
Post by struccc on Backtick identifiers
CODESYS Forge
talk
(Post)
Important: ` - Backtick - ASCII 96 ' - Apostrophe or Single Quote - ASCII 39 In the online help for some reason it renders ’ ... The only issue I don't get, why identifiers are still case-insensitive, even within `backtricks`? `mPa` and `MPa` for milli-, mega Pascal are the same identifiers, unfortunately... Is this a bug or a feature? Otherwise can do pretty nasty things with it: // A practical (?) ASCII table served as crazy strict enumeration // Just for hangover Monday mornings {attribute 'qualified_only'} {attribute 'strict'} TYPE ASCII : ( NULL := 16#00, START_OF_HEADING := 16#01, START_OF_TEXT := 16#02, END_OF_TEXT := 16#03, END_OF_TRANSMISSION := 16#04, ENQUIRY := 16#05, BELL := 16#06, ACKNOWLEDGE := 16#07, BACKSPACE := 16#08, HORIZONTAL_TAB := 16#09, LINE_FEED := 16#0A, VERTICAL_TAB := 16#0B, FORM_FEED := 16#0C, CARRIAGE_RETURN := 16#0D, SHIFT_OUT := 16#0E, SHIFT_IN := 16#0F, DATA_LINK_ESCAPE := 16#10, DEVICE_CONTROL_1 := 16#11, DEVICE_CONTROL_2 := 16#12, DEVICE_CONTROL_3 := 16#13, DEVICE_CONTROL_4 := 16#14, NEGATIVE_ACKNOWLEDGE := 16#15, SYNCHRONOUS_IDLE := 16#16, END_OF_TRANS_BLOCK := 16#17, CANCEL := 16#18, END_OF_MEDIUM := 16#19, SUBSTITUTE := 16#1A, ESCAPE := 16#1B, FILE_SEPARATOR := 16#1C, GROUP_SEPARATOR := 16#1D, RECORD_SEPARATOR := 16#1E, UNIT_SEPARATOR := 16#1F, ` ` := 16#20, `!` := 16#21, `$"` := 16#22, `#` := 16#23, `$$` := 16#24, `%` := 16#25, `&` := 16#26, `$'` := 16#27, `(` := 16#28, `)` := 16#29, `*` := 16#2A, `+` := 16#2B, `,` := 16#2C, `-` := 16#2D, `.` := 16#2E, `/` := 16#2F, `0` := 16#30, `1` := 16#31, `2` := 16#32, `3` := 16#33, `4` := 16#34, `5` := 16#35, `6` := 16#36, `7` := 16#37, `8` := 16#38, `9` := 16#39, `:` := 16#3A, `;` := 16#3B, `<` := 16#3C, `=` := 16#3D, `>` := 16#3E, `?` := 16#3F, `@` := 16#40, A := 16#41, B := 16#42, C := 16#43, D := 16#44, E := 16#45, F := 16#46, G := 16#47, H := 16#48, I := 16#49, J := 16#4A, K := 16#4B, L := 16#4C, M := 16#4D, N := 16#4E, O := 16#4F, P := 16#50, Q := 16#51, `R ` := 16#52, `S ` := 16#53, T := 16#54, U := 16#55, V := 16#56, W := 16#57, X := 16#58, Y := 16#59, Z := 16#5A, `[` := 16#5B, `\` := 16#5C, `]` := 16#5D, `^` := 16#5E, `_` := 16#5F, `agrave`:= 16#60, `a` := 16#61, `b` := 16#62, `c` := 16#63, `d` := 16#64, `e` := 16#65, `f` := 16#66, `g` := 16#67, `h` := 16#68, `i` := 16#69, `j` := 16#6A, `k` := 16#6B, `l` := 16#6C, `m` := 16#6D, `n` := 16#6E, `o` := 16#6F, `p` := 16#70, `q` := 16#71, `r` := 16#72, `s` := 16#73, `t` := 16#74, `u` := 16#75, `v` := 16#76, `w` := 16#77, `x` := 16#78, `y` := 16#79, `z` := 16#7A, `{`{} := 16#7B, `|` := 16#7C, `}` := 16#7D, `~` := 16#7E, DEL := 16#7F ) BYTE; END_TYPE
Last updated: 2025-11-05
Post by tobifenny on Modbus TLS Kommunikation
CODESYS Forge
talk
(Post)
Ich habe eine Wallbox, die ich gerne per Modbus ansteuern würde. Die Normale Modbus-Kommunikation, um ein paar Werte auszulesen klappt auch. Wenn ich aber Zugriff auf bestimmte Modbus-Register haben möchte, benötigt die Wallbox ein TLS-Zertifikat. Das Zertifikat habe ich bereits erstellt und im Security-Sreen unter Eigene Zertifikate hochgeladen. Weiter komme ich aber nicht mehr. Wie baue ich eine TLS-Verbindung mit der Waalbox auf? Vielleicht hat das ja schonmal jemand gemacht und ein Beispiel für mich. Ich bin über jede Hilfe sehr Dankbar!
Last updated: 2025-11-05
Post by eschwellinger on Modbus TLS Kommunikation
CODESYS Forge
talk
(Post)
aktuell bin ich mir nicht sicher ob das Modbus/TCP Security Protocol unterstützt, ich check das mal. Hast du ein Handbuch zu der Wallbox?
Last updated: 2025-11-06
Post by gatto on Backtick identifiers
CODESYS Forge
talk
(Post)
Hello, thank you for letting me know.
Last updated: 2025-11-06
Backtick identifiers
CODESYS Forge
talk
(Thread)
Backtick identifiers
Last updated: 2025-11-06
Post by tobifenny on Modbus TLS Kommunikation
CODESYS Forge
talk
(Post)
Hier ist das handbuch: https://www.kostal-solar-electric.com/fileadmin/downloadcenter/kse/BA_KOSTAL_Interface_KSEM_DE.pdf Im Kapitel 1.3.2 ist das mit dem TLS beschrieben und in Kapitel 3.6.2 sind die Modbus-Register beschrieben.
Last updated: 2025-11-06
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.