Structure to Dword, Dword to structure, using pointers
CODESYS Forge
talk
(Thread)
Structure to Dword, Dword to structure, using pointers
Last updated: 2013-07-03
syslibfile und dword
CODESYS Forge
talk
(Thread)
syslibfile und dword
Last updated: 2009-09-15
WORD to TIME (DWORD)
CODESYS Forge
talk
(Thread)
WORD to TIME (DWORD)
Last updated: 2019-10-03
Real to Dword
CODESYS Forge
talk
(Thread)
Real to Dword
Last updated: 2015-03-30
DWORD to BIT Outputs
CODESYS Forge
talk
(Thread)
DWORD to BIT Outputs
Last updated: 2023-06-23
Bit access to DWORD Variable
CODESYS Forge
talk
(Thread)
Bit access to DWORD Variable
Last updated: 2019-12-18
Confusion with Lreal to dword
CODESYS Forge
talk
(Thread)
Confusion with Lreal to dword
Last updated: 2013-12-30
Converting DWORD to WORD
CODESYS Forge
talk
(Thread)
Converting DWORD to WORD
Last updated: 2008-01-15
Drei Bytes in ein DWORD packen...
CODESYS Forge
talk
(Thread)
Drei Bytes in ein DWORD packen...
Last updated: 2012-07-30
Zwei WORD Variablen zu DWORD vereinigen?
CODESYS Forge
talk
(Thread)
Zwei WORD Variablen zu DWORD vereinigen?
Last updated: 2009-05-25
DWORD mit Array of BOOL überlagern?
CODESYS Forge
talk
(Thread)
DWORD mit Array of BOOL überlagern?
Last updated: 2006-04-26
DWORD auf Modbusadresse(n) zuweisen
CODESYS Forge
talk
(Thread)
DWORD auf Modbusadresse(n) zuweisen
Last updated: 2008-08-01
Baustein zur Ausgabe eines DWORD
CODESYS Forge
talk
(Thread)
Baustein zur Ausgabe eines DWORD
Last updated: 2014-03-07
SysTime64, shifting between DWORD
CODESYS Forge
talk
(Thread)
SysTime64, shifting between DWORD
Last updated: 2009-03-19
How to put four bytes into a DWORD
CODESYS Forge
talk
(Thread)
How to put four bytes into a DWORD
Last updated: 2013-01-12
Fehler 4010: "Kann REAL nicht in DWORD konvertieren" ??????
CODESYS Forge
talk
(Thread)
Fehler 4010: "Kann REAL nicht in DWORD konvertieren" ??????
Last updated: 2012-03-01
Convert STRING to DWORD for TCP/IP client
CODESYS Forge
talk
(Thread)
Convert STRING to DWORD for TCP/IP client
Last updated: 2022-06-11
Is DWORD considered signed or unsigned?
CODESYS Forge
talk
(Thread)
Is DWORD considered signed or unsigned?
Last updated: 2017-07-26
Post by ara32 on CODESYS 4 Linux:
CODESYS Forge
talk
(Post)
Hello! I managed to correctly launch CODESYS Developer Studio 3.5.17, almost all functionality works. The only issue remaining is that when connecting to a device and obtaining its public key, the NCryptEncrypt function is called, which is not fully implemented in the DLL source code, resulting in the connection not being established. Currently, the code of this function in the Wine repository looks like this: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG || flags & NCRYPT_PAD_OAEP_FLAG) { FIXME("No padding and oaep padding not supported\n"); return NTE_NOT_SUPPORTED; } if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } The program crashes due to the NCRYPT_PAD_OAEP_FLAG flag. I'm not proficient in C++, but I attempted to add handling myself, and here's the result: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG) { FIXME("No padding not supported\n"); return NTE_NOT_SUPPORTED; } BCRYPT_OAEP_PADDING_INFO oaepInfo = { 0 }; oaepInfo.pszAlgId = BCRYPT_SHA1_ALGORITHM; NTSTATUS status = BCryptEncrypt(key_object->key.bcrypt_key, input, insize, &oaepInfo, NULL, 0, output, outsize, result, flags); if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } Now, when calling the connection, it crashes with the error "bcrypt:BCryptEncrypt flags 0x4 not implemented." Can anyone help with enhancing this functionality or at least point me in the right direction?
Last updated: 2024-03-22
Post by marekxc on Little endian to Float from Modbus RTU
CODESYS Forge
talk
(Post)
Maybe try going back to step one and: Var Reg1: WORD; Reg2: WORD; Reg12: DWORD; Value: REAL; end_var // program Reg1:= 4096; Reg2:= 14884; Reg12:= (reg2 * 65536) + reg1; Value:= DWORD_TO_REAL(Reg12);
Last updated: 2023-12-28
Post by struccc on Bibliothek: floatingpointutils
CODESYS Forge
talk
(Post)
The issue s the byte order typically in this case. Can be especially problematic with floating point numbers - even more tricky if transferred with a word based protocol. It is a peasant way to try out the alternatives, dword order can be a-b-c-d, b-a-d-c, c-d-a-b, d-c-b-a where a is the most significant, d is the least significant byte. So all you need is to swap the bytes in your dword, until you get the expected result. If you don't want to mess writing code for this, I'd recommend CAA_Memory library for that: MEM.ReverseBYTEsInDWORD and MEM.ReverseWORDsInDWORD functions would definitively do the trick. Otherwise, can do like this: VAR dwIn : DWORD := 16#11223344; dwOut : DWORD; rOut : REAL; pIN : POINTER TO BYTE; pOUT : POINTER TO BYTE; END_VAR pIN := ADR(dwIn); //pOUt := ADR(dwOut); pOUt := ADR(rOut); pOut[0] := pIN[3]; pOut[1] := pIN[2]; pOut[2] := pIN[1]; pOut[3] := pIN[0]; Ugly, but does the job...
Last updated: 2024-11-19
Post by sebastianrapi on Bibliothek: floatingpointutils
CODESYS Forge
talk
(Post)
@Strucc.c: thanks very mutch. Yes, I think that was the problem. I tried yesterday a similar function, i have found: IEEE32 in REAL FUNCTION IEEE32_TO_REAL : REAL VAR_INPUT IN:DWORD; END_VAR VAR PTREAL:POINTER TO REAL; END_VAR PTREAL:=ADR(IN); IEEE32_TO_REAL:=PTREAL^; END_FUNCTION REAL in IEEE32 FUNCTION REAL_TO_IEEE32 : DWORD VAR_INPUT IN:REAL; END_VAR VAR PTDWORD:POINTER TO DWORD; END_VAR PTDWORD:=ADR(IN); REAL_TO_IEEE32:=PTDWORD^; END_FUNCTION http://www.oscat.de/community/index.php/topic,357.0.html And this works perfect. Now, the only thing that isn't clear is the libary "FloatingPointUtils, 3.5.17.0 (System)"... For me, the libary doesn't work. But the problem is now solved. Thanks a lot.
Last updated: 2024-11-21
Post by reinier-geers on Swap Output in frame
CODESYS Forge
talk
(Post)
How can i swap an output in a frame ? Ive got a frame of a mixer. use this twise. I want to turn these on and of. i can Get in the frame as dwAdr_Mixer : DWORD; . as Var_IN_OUT. Then Adress as Adr(Output ) But in the frame i cant swap dwAdr_Mixer^ :-= not dwAdr_Mixer^ ;
Last updated: 2024-03-11
Post by jmfernandes on OpenDir always in error
CODESYS Forge
talk
(Post)
Hello just to give more feedback the error I get is "ERROR_UNKNOWN :represents raw value of 5110" in File.DirOpen. The xDone never gets true, and I never get the listing of files (csv files in this case). In the hDir i get the value of 0 for a DWord!?
Last updated: 2024-07-31
Post by sebastianrapi on Bibliothek: floatingpointutils
CODESYS Forge
talk
(Post)
Hallo Zusammen, ich versuche die Bibliothek FloatingPointUtils.compiled-library-v3 zu benutzen. leider kommt dabei folgende Fehlermeldung: Kein Quellcode für dieses Objekt... (siehe Anhang) Wie kann ich diese Bib einbinden? Kann ich diese irgendwo herunterladen? Mein Ziel ist es ein DWORD (float) in ein REAL umzuwandeln. ICh hoffe, dass ich dies mit der Funktion HexStrToReal machen kann. So wie hier: https://gregstoll.com/~gregstoll/floattohex/ convert to float... Oder gibt es bei Codesys einen anderen Weg? Ich verwende v3.5 SP20 Patch 1 + (32Bit) Grüße Sebastian
Last updated: 2024-10-17
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
.