Search talk: pointer to

 
<< < 1 .. 5 6 7 8 9 .. 171 > >> (Page 7 of 171)

How to add startup parameters to an EtherCAT slave CODESYS Forge talk (Thread)
How to add startup parameters to an EtherCAT slave
Last updated: 2015-09-15

Request to members to update their country information CODESYS Forge talk (Thread)
Request to members to update their country information
Last updated: 2015-05-15

REAL to BYTE[],BYTE[] to REAL. CODESYS Forge talk (Thread)
REAL to BYTE[],BYTE[] to REAL.
Last updated: 2017-02-23

Using Modbusserver to communicate from pc to plc CODESYS Forge talk (Thread)
Using Modbusserver to communicate from pc to plc
Last updated: 2015-02-17

Is it possible to convert v2.3 Softmotion project to v3? CODESYS Forge talk (Thread)
Is it possible to convert v2.3 Softmotion project to v3?
Last updated: 2016-09-01

Configure Local Codesys Gateway to connect to remote device CODESYS Forge talk (Thread)
Configure Local Codesys Gateway to connect to remote device
Last updated: 2018-10-08

Is it possible to add regions to ST-code? CODESYS Forge talk (Thread)
Is it possible to add regions to ST-code?
Last updated: 2024-01-19

How to upload application file to remote controller (offline) ? CODESYS Forge talk (Thread)
How to upload application file to remote controller (offline) ?
Last updated: 2024-02-16

How to access to variable value through symbolic string name CODESYS Forge talk (Thread)
How to access to variable value through symbolic string name
Last updated: 2024-06-15

How to adapt Codesys Control SL to custom board CODESYS Forge talk (Thread)
How to adapt Codesys Control SL to custom board
Last updated: 2024-08-09

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-08-26

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-08-26

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-08-26

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-08-26

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-08-26

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-08-26

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-09-03

Unable to Connect to Modbus RTU Device CODESYS Forge talk (Thread)
Unable to Connect to Modbus RTU Device
Last updated: 2024-09-04

How to revert to previous version library CODESYS Forge talk (Thread)
How to revert to previous version library
Last updated: 2024-09-06

Unable to add alarm configuration object to project CODESYS Forge talk (Thread)
Unable to add alarm configuration object to project
Last updated: 2024-09-27

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 paulorb on STRUCT AT %MW1000 CODESYS Forge talk (Post)
Hi I am trying to use STRUCT to parse commands from Modbus/TCP, Modbus client will fill the bytes related to a specific command (type, parameters), then PLC (Codesys) will access the command parameters. A STRUCT will simplify a lot the process of parsing the data, so I don't need to parse byte per byte, address will be mapped to a struct and I can use it for parsing the data. From what I understood, the compiler does not allow me to specify the location of the struct for a %MW register. VAR_COMMAND AT %MW1002: structGenericModbusCommand; This will throw: Bad declaration, use '%ML' for 'structGenericModbusCommand' variable But If I change it to %ML, when you go online you see that it is actually allocating the struct in another memory address. When we go online, on GVL we can see: VAR_COMMAND. structGenericModbusCommand %ML1002 commandType COMMANDTYPE %MB8016 ... %MB8020 I am not specifying a pointer or a reference it is a struct type, why is it mapping to a %MW location (random one). How can I control where it is mapping to? I need a consistent way to map STRUCT to specific modbus address. Is it possible? Thanks, Paulo Note I am using a Codesys OEM: Schneider Machine Expert Logic Builder (M241)
Last updated: 2024-08-13

Post by gustavocsw on MQTT memory leak problem CODESYS Forge talk (Post)
Hello everyone, I'm using the IoT Library to implement the MQTT communication with my local broker server in order to publish and subscribe at specifics topics to share and consume information about my application. But, it seems that are occurring some memory leak problem in a "high" frequency (more than 10 Hz) subscribe process. I follow the same method as in IoT Lib exemples, and at first looks perfect but my PLC was rebooting frequently and when I check its memory usage that was increasing as fast as the subscribe massage was sent. I'm using a WEG PLC410 and a WEG PLC500, and this error occurred in both of them (including in CODESYS Control Win x64). The application sends to the system a message JSON with the float payload Ex. {"data" : 0.8500}, but this happens with a INT, or BOL as well. I use the follow code in my application to find the value: //FindFirstValueByKey VARs PROGRAM JSON_VELO VAR //------Setting the JSON Subscriber to Set the Relay Value jsonDataVelo : JSON.JSONData; jsonByteArrayReaderVelo : JSON.JSONByteArrayReader; xST1okVelo : BOOL; FindFirstValueByKeyVelo : JSON.FindFirstValueByKey; jsonElementVelo : JSON.JSONElement; xDoneReaderVelo : BOOL; xDoneFindVelo : BOOL; //STRING and WSTRING for Subscribe the massage sPayloadJsonVelo : STRING := 'opa'; psPayloadJsonVelo : POINTER TO BYTE := ADR(sPayloadJsonVelo); //wsPayloadJsonRelaySet : WSTRING := "opa"; wsPayloadJsonVelo : WSTRING := STRING_TO_WSTRING('opa'); pwsPayloadJsonVelo : POINTER TO WORD := ADR(wsPayloadJsonVelo); lrVelo : LREAL; xKeepAliveVelo : BOOL; xSetVelo : BOOL; RSSet : RS; LIMPAR : STRING; //Find the msg end sFindVelo : STRING := '}'; psFindVelo : POINTER TO STRING := ADR(sFindVelo); iLenVelo : INT; iSizeVelo : INT := 12; udiContMsg : UDINT; END_VAR // FindFirstValueByKey CODE // Relay Set configuration xSetVelo := MQTT_SUBSCRIBER.RSVelo.Q1; IF xSetVelo THEN xKeepAliveVelo := TRUE; END_IF IF xKeepAliveVelo THEN udiContMsg := udiContMsg + 1; iLenVelo := TO_INT(StrLenA(psPayloadJsonVelo)); iSizeVelo := iLenVelo - TO_INT(MQTT_SUBSCRIBER.udiPayloadSizeVelo); StrDeleteA(psPayloadJsonVelo,iSizeVelo,iLenVelo); wsPayloadJsonVelo := STRING_TO_WSTRING(sPayloadJsonVelo); pwsPayloadJsonVelo := ADR(wsPayloadJsonVelo); //MQTT.ConvertUTF8toUTF16(sourceStart:= ADR(sPayloadJsonVelo), targetStart:= ADR(wsPayloadJsonVelo), dwTargetBufferSize:= TAM, bStrictConversion:= 1); //Reset jsonByteArrayReader jsonByteArrayReaderVelo ( xExecute := TRUE, pwData := pwsPayloadJsonVelo, jsonData := jsonDataVelo, xDone => xDoneReaderVelo ); FindFirstValueByKeyVelo( xExecute := xDoneReaderVelo, wsKey := "data", diStartIndex:= 0, jsonData := jsonDataVelo, jsonElement => jsonElementVelo, xDone => xDoneFindVelo ); IF xDoneFindVelo THEN lrVelo := jsonElementVelo.value.lrValue; //Reset jsonByteArrayReader jsonByteArrayReaderVelo ( xExecute := FALSE, pwData := pwsPayloadJsonVelo, jsonData := jsonDataVelo, xDone => xDoneReaderVelo ); FindFirstValueByKeyVelo( xExecute := FALSE, wsKey := "data", diStartIndex:= 1, jsonData := jsonDataVelo, jsonElement => jsonElementVelo, xDone => xDoneFindVelo ); xKeepAliveVelo := FALSE; GVL.xSetVeloRead := TRUE; END_IF END_IF And this to subscribe at the topic: //SUBSCRIBE VAR: //----------------- Subscribe Velocity ----------------------- MQTTSubscribeVelo : MQTT.MQTTSubscribe;//Variable MQTTSubscriber block -X - function-X wsTopicSubscribeVelo : WSTRING(1024) := "CORE/odometry/GET/data/simp"; // Topic to publish a message sSubscribeMassageVelo : STRING; udiPayloadSizeVelo : UDINT; xSDoneVelo : BOOL; xSErrorVelo : BOOL; xReceiveVelo : BOOL; eSTypeVelo : MQTT.MQTT_ERROR; eSMQTTErrorVelo : MQTT.MQTT_ERROR; RSVelo : RS; udiCont : UDINT; //SUBSCRIBE CODE: MQTTSubscribeVelo( xEnable:= MQTT_CLIENT.xConnection_Broker AND NOT xSErrorVelo AND NOT JSON_VELO.xKeepAliveVelo, pbPayload:= JSON_VELO.psPayloadJsonVelo, udiMaxPayloadSize:= SIZEOF(JSON_VELO.sPayloadJsonVelo), udiPayloadSize => udiPayloadSizeVelo, mqttClient:= MQTT_CLIENT.ClientMQTT, wsTopicFilter:=wsTopicSubscribeVelo, xDone => xSDoneVelo, xError=> xSErrorVelo, xReceived => xReceiveVelo, eMQTTError=> eSMQTTErrorVelo ); RSVelo(SET := xReceiveVelo, RESET1 := JSON_VELO.xKeepAliveVelo);
Last updated: 2024-09-09

Connection to device closed CODESYS Forge talk (Thread)
Connection to device closed
Last updated: 2023-08-25

Sysmac Studio to Codesys CODESYS Forge talk (Thread)
Sysmac Studio to Codesys
Last updated: 2023-09-20

<< < 1 .. 5 6 7 8 9 .. 171 > >> (Page 7 of 171)

Showing results of 4259

Sort by relevance or date