Search talk: convert word to integer

 
<< < 1 .. 15 16 17 18 19 .. 230 > >> (Page 17 of 230)

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 dmb-fan on Attemp Convert old V2.3 projects : Error HRESULT: 0x80010105 (RPC_E_SERVERFAULT)) CODESYS Forge talk (Post)
I try Sandbox. Now I get messages like "Converter is on the blacklist for this version". Online help says nothing about a too high version for the converter. How I can find out the allowed version? Or is this only for sandboxes? what a jungle !
Last updated: 2026-08-11

Post by r-niedermayer on C0564 Warning Message CODESYS Forge talk (Post)
Please see or Online Help on how to initialize variable before using them: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_pragma_attribute_global_init_slot.html Regarding the Attribute global_init_slot: You can use this pragma to influence the order in which signatures are processed during global initialization. It can only be applied to signatures. By default, the initialization sequence for variables from global variable lists is undefined! However, if, for example, variables from one list depend on variables from another list, it is necessary to initialize one before the other. (Aee OLH and Syntax) The placeholder <slot> must be replaced by an integer value that defines the position in the initialization sequence.</slot> The default value is 50000. A lower value causes an earlier initialization! If several signatures have the same value for the 'global_init_slot' attribute, the order of their initialization remains undefined! Cautious application should therefore be considered! Example: The project contains f.e. two global variable lists GVL_1 and GVL_2. The global variable "A" is part of the global variable list GVL_1: {attribute 'global_init_slot' := '300'} VAR_GLOBAL A : INT:=1000; END_VAR The initialization values of the variables "B" and "C" of GVL_2 are dependent on the variable "A". {attribute 'global_init_slot' := '350'} VAR_GLOBAL B : INT:=A+1; C : INT:=A-1; END_VAR So if you set the 'global_init_slot' attribute of the global variable list GVL_1 to 300, i.e. to the lowest initialization value in the example, then it is ensured that the expression "A+1" is well-defined at the time of initialization of "B".
Last updated: 2024-01-30

Post by mariapaola on Port instantiation of serial interface in WAGO PLC using Modb_L05.lib in CoDeSys v2.3 CODESYS Forge talk (Post)
Hi, Would really appreciate your insights in this issue I have. I am currently using a WAGO 750-881 with multiple IO devices. For one of them I already occupied the MODBUS Master configuration tool so I cannot overwrite it for my other devices. I have a total of two serial interfaces WAGO 750-652. The first one is instantiated in COM2 and doesn't need any protocol since the information comes in an specific formatting that need little code to differentiate between needed info. This one is working just fine. The second one is where I have an issue. I have tried to instantiate the port using MODBUS library modb_L05.lib to properly receive the data from an ARDUINO and I am absolutely unable to open the port: Signal DEVICE2.fbModbus.MODBUS_EXT_MASTER.Interface.Com_Port_Ist_Offen is never TRUE, among with all other signals from that interface, while signal DEVICE1.COM2.Com_Port_Ist_Offen is TRUE, and the other signals also read as TRUE or FALSE. I have tried instantiating the second one as the first one, changing COM3 to COM4, I've tried a lot of things but it wont ever open the channel. I don't know if you have any recommendations for me. For both physical modules, both witness LEDs A and E are on. First one is instantiated like this: PROGRAM DEVICE1 VAR wBaudRate : WORD := BAUD_9600; bDataBits : BYTE := 8; bParity : BYTE := 0; bFlowControl : BYTE := 3; (RS422 FullDuplex with continous send) i : INT; COM2 : SERIAL_INTERFACE; xOpenPort2 : BOOL := TRUE; ( Flag to open the Port ) xInitPort2 : BOOL; ( Flag to initiallize the Port ) ReceiveBuffer2 : typRing_Buffer; END_VAR COM2( bCOM_PORT_NR := 2, cbBAUDRATE := wBaudRate, cbsBYTESIZE := bDataBits, cpPARITY := bParity, csSTOPBITS := STOPBITS_1, cfFLOW_CONTROL := bFlowControl, utRECEIVE_BUFFER := ReceiveBuffer2, ptSEND_BUFFER := ADR(SendString2), xINIT := xInitPort2, xOPEN_COM_PORT := xOpenPort2, iBYTES_TO_SEND := LEN(SendString2)+1, xSTART_SEND := xSendActive2 ); Second one like this: PROGRAM DEVICE2 VAR COM4 : SERIAL_INTERFACE; xInitPort4 : BOOL := TRUE; xOpenPort4 : BOOL := TRUE; ReceiveBuffer4 : typRing_Buffer; fbModbus : MODBUS_EXTENDED_MASTER_RTU; fbError : enumMB_ERROR; stQuery : typModbusExtendedQuery; stResponse : typModbusResponse; au16Data : ARRAY[0..14] OF WORD; i : INT; tPoll : TON; END_VAR COM4( bCOM_PORT_NR := 4, cbBAUDRATE := BAUD_9600, cbsBYTESIZE := 8, cpPARITY := 0, csSTOPBITS := STOPBITS_1, cfFLOW_CONTROL := 2, ( RS-485 half-duplex ) utRECEIVE_BUFFER := ReceiveBuffer4, xINIT := xInitPort4, xOPEN_COM_PORT := xOpenPort4, xSTART_SEND := xSendActive4, ); stQuery.SlaveAddress := 1; stQuery.FunctionCode := 3; stQuery.Read_StartAddress := 0; stQuery.Read_Quantity := 15; (Poll code) fbModbus( ENABLE := TRUE, bCOM_PORT := 4, ( COM4=> 750-652 port ) cbCOM_BAUDRATE := BAUD_9600, cpCOM_PARITY := 0, csCOM_STOPBITS := 1, cbsCOM_BYTESIZE := 8, cfCOM_FLOW_CONTROL := 2, TimeOut := T#500ms, StartFunction := xStart, ExtQuery := stQuery, Response := stResponse, MB_Error => fbError ); FOR i := 0 TO 14 DO au16Data[i] := stResponse.Data[i]; END_FOR;
Last updated: 2025-11-28

Post by testlogic on Sending Sequential Modbus TCP Packets CODESYS Forge talk (Post)
I have a Modbus TCP slave device where I need to do sequential writes to the same register. The register I'm writing to is kind of like a command line, each packet is a command word encoded in Hexadecimal. I am having difficulty implementing this system in CoDeSys 3.5 SP19. I feel like the structure of the program should be something along the lines of (Pseudocode): ModbusTCPSend(Command Register, Command1) ModbusTCPSend(Command Register, Command2) ModbusTCPSend(Command Register, Command3) I have tried to implement this with a rising edge trigger wMot1OPCode := 16#E1; //Stop Motor & Kill Program xMot1SendOP := TRUE; //Send OP on rising edge xMot1SendOP := FALSE; //Reset wMot1OPCode := 16#9E; //Disable Motor xMot1SendOP :=TRUE; //Send OP on rising edge xMot1SendOP := FALSE; //Reset Where "wMot1OPCode" is the IO map for writing to the command register, and "xMot1SendOP" is the rising edge trigger for that modbus channel. However, this doesn't work. The device never responds to the modbus commands. It seems like the trigger variable is switched too quickly for modbus to send the packet. I know the modbus register is working, because I can set the channel to cyclic and the device will respond. However, I can't use this reliably because I need each command to be sent once, in order. Cyclic keeps re-sending the commands and seems like it could miss a command as well if one was sent in-between cycle time. I have also trying using the Application trigger as described by https://faq.codesys.com/pages/viewpage.action?pageId=24510480, but this is also not working for me. See attached picture for my FBD code. This seems like a simple function, I can't tell what I'm doing wrong here. Thanks for the help.
Last updated: 2024-03-06

How to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server CODESYS Forge talk (Thread)
How to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server
Last updated: 2023-08-28

how to transfer raspberrypi runtime license from sdcard to dongle without the original raspi? CODESYS Forge talk (Thread)
how to transfer raspberrypi runtime license from sdcard to dongle without the original raspi?
Last updated: 2021-04-13

What is the best way to upgrade a project to a new version of Codesys? CODESYS Forge talk (Thread)
What is the best way to upgrade a project to a new version of Codesys?
Last updated: 2022-03-01

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

How to intercept a variation in the RetainPerstist variables (for saving to file) CODESYS Forge talk (Thread)
How to intercept a variation in the RetainPerstist variables (for saving to file)
Last updated: 2018-08-03

How to set "Always updatevariables" to "enable 2" by default in DeviceDescription. CODESYS Forge talk (Thread)
How to set "Always updatevariables" to "enable 2" by default in DeviceDescription.
Last updated: 2020-12-10

Specify Input Configuration "OnDialogClosed" Action to only react to certain Dialogs CODESYS Forge talk (Thread)
Specify Input Configuration "OnDialogClosed" Action to only react to certain Dialogs
Last updated: 2023-10-02

is it possible to connect to a newer runtime from HMI runtime 3.5.16 CODESYS Forge talk (Thread)
is it possible to connect to a newer runtime from HMI runtime 3.5.16
Last updated: 2024-07-02

The Ultimate Guide to Taxi Services in the UK: From Airports to City Travels CODESYS Forge talk (Thread)
The Ultimate Guide to Taxi Services in the UK: From Airports to City Travels
Last updated: 2024-08-08

Navigating the UK with Ease: Your Guide to Taxi Services from Major Cities to Key Destinations CODESYS Forge talk (Thread)
Navigating the UK with Ease: Your Guide to Taxi Services from Major Cities to Key Destinations
Last updated: 2024-08-08

how to extract the name of an FB to a variable CODESYS Forge talk (Thread)
how to extract the name of an FB to a variable
Last updated: 2024-10-01

Post by romrot on Trying to connect Codesys OPC server to Ignition CODESYS Forge talk (Post)
Trying to connect Codesys OPC server to Ignition, but I get this fault "java.lang.Exception: no anonymous token policy found"
Last updated: 2025-01-21

Unable to add EL6751 to Control RTE V3 on W11 IoT LTSC using Eng. V3.5 SP21 CODESYS Forge talk (Thread)
Unable to add EL6751 to Control RTE V3 on W11 IoT LTSC using Eng. V3.5 SP21
Last updated: 2025-09-08

Can't connect to my raspberry pi 3 after I tried to adjust CODESYScontrol.cfg CODESYS Forge talk (Thread)
Can't connect to my raspberry pi 3 after I tried to adjust CODESYScontrol.cfg
Last updated: 2021-06-17

How to connect Codesys Control win v3 to an ethercat device CODESYS Forge talk (Thread)
How to connect Codesys Control win v3 to an ethercat device
Last updated: 2021-04-26

How to generate PDO explicit request with RTR flag to TRUE CODESYS Forge talk (Thread)
How to generate PDO explicit request with RTR flag to TRUE
Last updated: 2018-06-13

Codesys closes instantly after I try to download to PLC CODESYS Forge talk (Thread)
Codesys closes instantly after I try to download to PLC
Last updated: 2022-12-21

Unable to get retain variables to work in a specific Raspberry Pi project CODESYS Forge talk (Thread)
Unable to get retain variables to work in a specific Raspberry Pi project
Last updated: 2019-12-03

what to do in case of a writing error to eeprom CODESYS Forge talk (Thread)
what to do in case of a writing error to eeprom
Last updated: 2020-11-26

Beaglebone Black - only one Ethernet port - how to connect to LAN, and EtherCAT? CODESYS Forge talk (Thread)
Beaglebone Black - only one Ethernet port - how to connect to LAN, and EtherCAT?
Last updated: 2022-01-16

<< < 1 .. 15 16 17 18 19 .. 230 > >> (Page 17 of 230)

Showing results of 5738

Sort by relevance or date