Search talk: if statement

 
<< < 1 .. 3 4 5 6 7 .. 54 > >> (Page 5 of 54)

Post by trusty-squire on How can you get the active frame index from a frame CODESYS Forge talk (Post)
If you are switching a frame based on the "Switch Frame Variable", then just use a variable that is accessible to your program to set your active frame. If you're trying to see which is the active visualization, then use the "CurrentVisu" variable. Note you'll need to enable this by checking it on in the Visualization Manager settings. If it's neither of those, you'll need to be more clear on how you're project is set up.
Last updated: 2025-03-11

Post by alessandro on SysMemCmp SysMemCpy CODESYS Forge talk (Post)
VAR Data1:ARRAY[1..10] OF SINT ; Data2:ARRAY[1..10] OF SINT ; Data3:ARRAY[1..10] OF SINT ; Data4:ARRAY[1..10] OF SINT ; ex_1 : BOOL ; ex_2 : BOOL ; enable : BOOL :=0 ; END_VAR // PROGRAM // The scope of this example is compare and copy the values of two ARRAY only if some value is different using SysMemCmp and SysMemCpy. // In this 2 example we don't use a FOR cicle for do this, and pBuffer1 and pBuffer2 is just a pointer to ARRAY. See details in Library util.SysMem of Codesys // The compare funcion util.SysMem.SysMemCmp is bidirectional if Data1 chanege respect Data2 ex_1 go to 1 and if Data2 change respect Data1 also // but the copy function util.SysMem.SysMemCpy work only from source ARRAY pSrc:=ADR(Data1) to destination ARRAY pDest:=ADR(Data2) // Example 1 Full ARRAY compare and copy // This compare 2 different equal ARRAY and if there is some difference ex_1 go to 1 and if you give enable he copy Data1 in Data2 ex_1 := TO_BOOL(util.SysMem.SysMemCmp(pBuffer1:=ADR(Data1), pBuffer2:=ADR(Data2), udiCount:=SIZEOF(Data1))); IF ex_1 AND enable THEN util.SysMem.SysMemCpy(pDest:=ADR(Data2), pSrc:=ADR(Data1), udiCount:=SIZEOF(Data1)); END_IF // Example 2 Only selected area of the ARRAY compare and copy // This compare 2 different equal ARRAY starting from position number [3] for 4 byte in this case start at position [3] and finish at position number [6] // and if there is some difference only in area [3..6] of the ARRAY ex_2 go to 1 if you give enalbe he copy Data3[3..6] in Data4[3..6] // if something change in other array position[0..2] or [7..10] are ingnored ex_2 := TO_BOOL(util.SysMem.SysMemCmp(pBuffer1:=ADR(Data3[3]), pBuffer2:=ADR(Data4[3]), udiCount:=4)); IF ex_2 AND enable THEN util.SysMem.SysMemCpy(pDest:=ADR(Data4[3]), pSrc:=ADR(Data3[3]), udiCount:=4); END_IF // Attention udiCount input is intended in <byte> in the example 1 I pass to udiCount:=SIZEOF(Data1) for compare and copy the intere ARRAY and // SIZEOF pass the size of intere ARRAY in byte to the function input, in this 2 examples I used variable type SINT each one occupie 1 byte and one position in the ARRAY // and in the example 2 I pass udiCount:=4 for compare and copy only 4 position of Data3/4[3..6] if you want to extend this example and use it for an ARRAY OF WORD // remember that each WORD will occupe 2 byte (16 bit) and you will have to pass udiCount:=SIZEOF(Data1) if you need to compare intere ARRAY example 1 // but need udiCount:=(42) for the example 2 because need to compare and copy 4 word each occupie 2 byte (16 bit). // For REAL (32 bit) need udiCount:=SIZEOF(44) for LREAL or (64 bit) need udiCount:=SIZEOF(416) // a good rule is calculate the dimension of the ARRAY in byte without empty space at the end, multiple of data type number for variable bigger then 8 bit // Example : If you want to create an ARRAY for 5 REAL (32 bit) each occupie 4 byte the correct size is ARRAY[0..19] OF REAL 54=20 position. // NOTE : In the example the position of compare function util.SysMem.SysMemCmp is first and the copy function util.SysMem.SysMemCpy inside the IF is after // in one cycle of the program the two array is compared and if there is some difference and enable are copied. // If you move util.SysMem.SysMemCmp after the IF cycle he will copare the ARRAY in the current cycle but the copy of the value will do in the next cycle.</byte>
Last updated: 2025-10-24

Post by gregor on PFC 200 - codesys V3.5 CODESYS Forge talk (Post)
As far as I know, only if someone downloaded sourcecode to the PLC.
Last updated: 2023-08-25

Post by eschwellinger on Project compiling error in Simulation mode CODESYS Forge talk (Post)
I fear you need to update if you need a solution for this.
Last updated: 2023-09-08

Post by eschwellinger on EtherCat-Rexroth Drive lost connection or no? CODESYS Forge talk (Post)
check on EthercatMaster status page if you loose Ethercat frames - and check how the jitter is on Ethercat Master task
Last updated: 2023-10-25

Post by imdatatas on Detecting if a client is connected to webvisu server CODESYS Forge talk (Post)
Thank you @dgirard Your idea and above description helped me what i was looking for.
Last updated: 2023-11-08

Post by mos89p on Check if Codesys runtime is on 'Running' or 'Stopped' state? CODESYS Forge talk (Post)
why not put it on windows startup ? to start at each start
Last updated: 2024-07-02

Post by pazderai on CanOpen write issue CODESYS Forge talk (Post)
Anyway, any idea how to get command byte 0x22 for sdo write if I use codesys cia405 canopen library?
Last updated: 2024-07-16

Post by gilbertamine on Comparing Arrays of structure CODESYS Forge talk (Post)
If I knew it was this simple... Exactly what I was looking for ! Thanks you very much.
Last updated: 2024-08-23

Post by fraziersedge on ModbusServer became unreachable if reach maximum of 16 byClientConnections CODESYS Forge talk (Post)
Frédéric did you ever find a solution to this problem? I am experiencing the same thing.
Last updated: 2024-08-27

Post by olemart on Set REFERENCE to 0 (null) when no longer used CODESYS Forge talk (Post)
Did you find out if this work?
Last updated: 2024-10-02

Post by pistola on Case Function - Multiple Conditions, Is it possible? CODESYS Forge talk (Post)
Looking at the help (https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_st_instruction_case.html). I don't think it is possible but I figured I'd ask. I'm looking at have a case that evaluates two variables, instead of having multiple If Else statements I was hoping I could just use a case. Example * Case Var1 & Var 2 of 10 & 10: Instruction Code 10 & 20: Instruction Code 20 & 20: Instruction Code End_Case Obviously I tried typing as noted above and Codesys threw an error. But I was wondering if there was a different way of programming to make something like this work? If not I'll just use a bunch of If Else Statements, Thanks.
Last updated: 2024-11-03

Post by eschwellinger on Persistence Manager: Config File not found? CODESYS Forge talk (Post)
I would check with the CODESYS file browser if these files exits on your system (PlcLogic directory)
Last updated: 2024-11-02

Post by eschwellinger on No source code available for this object CODESYS Forge talk (Post)
first i would try to update to 4.18.0.0 (latest) SoftMotion version and try if same problem still occure.
Last updated: 2025-01-28

Post by bingo on PLC Shell commands via ST Code CODESYS Forge talk (Post)
Suppose you need to switch PLC IP dynamically between 192.168.1.10\192.168.2.10, First, set PLC IP to 192.16.1.10. Create a PGVL with a flag ‘xUseSecondry’ xUseSecondry : bool ; create a function that use socket to update IP: FUNCTION fSwitchIP : bool VAR_INPUT useMainIP:bool; END_VAR --------------------------------CODE------ if useMainIP then SysSockSetIPAddress(‘0’, ‘192.168.1.10’); PGVL.xUseSecondry := 0; else SysSockSetIPAddress(‘0’, ‘192.168.2.10’); PGVL.xUseSecondry := 1; end_if Now, if during execution, you need to switch IP, call the function ‘fSwitchIP()’, Set input to 1 for main IP, 0 for secondary IP. In order to set secondary IP at startup, you can do the following: in your PLC_PRG add a flag: xInit : bool := 1 ; and the code: if xInit then if PGVL.xUseSecondry then fSwitchIP(0); end_if xInit := 0 ; end_if *Alternative way is to use system events.
Last updated: 2025-03-03

Post by eschwellinger on Creating, using an external Function. CODESYS Forge talk (Post)
you need the check the plclog if the the component have been loaded on startup of th plc.
Last updated: 2025-04-19

Post by eschwellinger on Two OneWireMaster on one Raspberry PI 5 CODESYS Forge talk (Post)
check if the second onwire master is accessible in the configfile path setting. /etc/codesyscontrol/
Last updated: 2025-06-12

Post by simotion on Property CODESYS Forge talk (Post)
Why can't a property be of type REFERENCE TO? Plc goes to stop if I try that.
Last updated: 2023-12-14

Post by ton on How to create a stopwatch? CODESYS Forge talk (Post)
If you use LTIME() you will be very accurate and be able to have a normal task cycle time.
Last updated: 2023-12-16

Post by eschwellinger on Raspberry Pi 4 with Legacy Drivers and Codesys 3.5.19 Patch 4 CODESYS Forge talk (Post)
what if you use all packages in latest version? pi Runtime 4.10.0.0 ?
Last updated: 2023-12-19

Post by eschwellinger on Access to the path *** is denied CODESYS Forge talk (Post)
it is textlist related as far as I remember, let me check if the is a workaround.
Last updated: 2024-02-02

Post by eschwellinger on Access to the path *** is denied CODESYS Forge talk (Post)
the workaround is: start CODESYS admin if this message occure
Last updated: 2024-02-05

Post by hasangenc on DI4 USB - Transfer Data CODESYS Forge talk (Post)
Well, Hi again. I solve the problem, if anyone having the same problem, I might help. You can reach me through this platform.
Last updated: 2024-02-22

Post by nmcc on Viewing PDF in WebBrowser Visual Element CODESYS Forge talk (Post)
You can change which browser you use in a webbrowser visual element? if so how do I do that?
Last updated: 2024-03-01

Post by dkugler on Web Browser special tools errors CODESYS Forge talk (Post)
If there is a runtime + webvisu running at the .101 then the link should be: http://192.168.1.101:8080/webvisu.htm
Last updated: 2024-03-06

<< < 1 .. 3 4 5 6 7 .. 54 > >> (Page 5 of 54)

Showing results of 1329

Sort by relevance or date