Search talk: setting value of variable

 
<< < 1 .. 28 29 30 31 32 .. 142 > >> (Page 30 of 142)

Post by simotion on Inheritance of axis CODESYS Forge talk (Post)
I have developped a function block 'Axis' the inherits from 'AXIS_REF_SM3' -> FUNCTION_BLOCK Axis EXTENDS AXIS_REF_SM3 In my global variable list I define a variable MasterDrive of type Axis and assign Axis1. Axis1 is a virtual drive (AXIS_REF_VIRTUAL_SM3). This type should inherit from AXIS_REF_VIRTUAL. VAR_GLOBAL MasterDrive : Axis := Axis1; However I get the error 'Cannot convert type'. What is the way to obtain what I want : function block inheriting AXIS_REF_SM3 and initialising this function block with a Softmotion virtual or real axis?
Last updated: 2023-12-07

Post by phoward131 on Numpad decimal value requires leading zero CODESYS Forge talk (Post)
I have noticed on the standard numpad dialog, if a user enters a purely decimal number (ie '.6'), the numpad will not accept the value but gives no indication. One must type a leading zero (ie '0.6') in order for it to work. Is there a way to correct this so that a user can just type the decimal value?
Last updated: 2024-04-30

Post by bertus on Can't get SMC_SmoothPath to work CODESYS Forge talk (Post)
Hi Georg, thanks for your time. What is the value of D_ANGLE_TOL? It is set to 0.01. Do you need the assignment bAbort := NOT bDecoder? Does it help to leave it out? This seems to make no difference. Any errors (e.g. SMC_SmoothPath.Error/ErrorID) or PLC log messages? No errors or log messages. What if you comment out SMC_SmoothMerge and SMC_LimtiDynamics, is corner smoothing still not working? Indeed. Is bDecode written from a different task (e.g. visu)? Then I would recommend to assign to a local variable (bDecodeLocal := bDecode) and use that for all FBs. Otherwise, FBs might see different values of bDecode in a single cycle, which will cause problems. It is a local variable, written from a state machine inside this program. But there is new information: During some trial and error, I tried skipping "stage 2: merge short linear segments" (SMC_SmoothMerge). And suddenly it rounds the corners, see attached image. Looking a bit closer, I noticed that (with the original program) after a download (cold start?), it in fact did round the corners, but only once. Ever next cycle in which the NC program was executed, the corners where not rounded. Not sure if there is any relation, but SMC_SmoothMerge is also the only FB which has no bAbort input. Perhaps I need to reset it (or any buffers) by other means?
Last updated: 2025-12-18

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

Post by nima-khajehali on Touch Issues in Tablet (HMI) CODESYS Forge talk (Post)
Hi Everybody, I download the Visualization on the Dell tablet as HMI. The button of HMI does not work with any touches. However, the buttons is working well with a plugged in mouse. Is there any configuration in Visu. manager or setting that I can modify? (Latitude 7230 Rugged Extreme Tablet) Please help me.
Last updated: 2024-02-08

Post by ruobian on Analog Input Delay Timer CODESYS Forge talk (Post)
Hello there, I am new here and in programming. I need help with the basics. I am trying to do what I mentioned in the title. I have an analog input. So I have a real or integer data type value. I want to delay it. TON and TOF only work with bool. I think there is a function block that has two inputs, 1 for real or int and 1 for bool. And if bool is true, it will give the output as real or int. I don't know but I need something like this. Actually, it is not exactly like that. In other words, it will not show the real value at the input at the output after a certain period of time. I want it to show the real value from 2 seconds ago continuously. The purpose of doing this is to compare the real value I received with the value from 2 seconds ago and find out whether it went up or down. I am using only FBD. Please help me with this. Thanks in advance.
Last updated: 2024-08-20

Post by mondinmr on Jitter problems on imx8 CODESYS Forge talk (Post)
SOLVED!!! In this imx8 max_cstate=1 in kernel boot parameters is not working! We found a workaround: #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <stdint.h> int main(void) { int fd; uint32_t value = 0; fd = open("/dev/cpu_dma_latency", O_WRONLY); if (fd < 0) { perror("Error opening /dev/cpu_dma_latency"); return 1; } if (write(fd, &value, sizeof(value)) != sizeof(value)) { perror("Error writing to /dev/cpu_dma_latency"); close(fd); return 1; } while (1) { pause(); } } This simple code launched before CODESYS do the same work! Now jitter is identical as measured by cyclictest!
Last updated: 2023-10-19

Post by hteich on IECStringUtils.FormatDateTime CODESYS Forge talk (Post)
Does that actually work, though? Where do you put in the actual Date_Time value??
Last updated: 2025-10-07

Post by rh-pk on v3.5 SP19 - Modbus TCP Devices - Channel Limit? CODESYS Forge talk (Post)
Hello Vincent, I don't have 75 channels but it works for me as described above without any problems. There is also a parameter MAX_MODBUS_CHANNELS in the library parameters for the IoDrvModbusTCP module. The default value there is 100. Perhaps you are reaching the limit there? The value can be adjusted accordingly. I assume that this value is not accepted in the input dialogue and therefore the 'fixed' limit value 10 is used.
Last updated: 2024-04-10

Post by alexgooi on Modbus writing on value change CODESYS Forge talk (Post)
Hi Duvan, You could make this in 1 single object (FB), Indeed don't use a function for this beacuse you need some memory to keep the old value. For i := 0 TO 200 BY 1 DO //Check if the value has been changed IF Old_Value[i] <> Value[i] THEN //Set the trigger to TRUE Trigger[i] := TRUE; Old_Value[i] := Value[i]; END_IF END_FOR If you define the Value array as an In_Out and the Trigger as an In_Out you arn't claiming any aditional memory to your system. You ofcourse then need to add some code arround it that does something with the trigger and writes it back to FALSE again. If you want more flexability you also could use pointers instead of using the IN_OUT FOR i := 0 TO 200 BY 1 DO address := address_Input + i * SIZEOF(*Put type here); IF Address^ <> Old_Value[i] THEN Trigger[i] := TRUE; Old_Value[i] := Address^; END_IF END_FOR
Last updated: 2024-04-02

Post by imdatatas on Problem of assigning physical addresses to variables of type ARRAY OF ARRAY as MW and QW CODESYS Forge talk (Post)
Hello, I am encountering an interesting problem as below in SP20patch5 variable definition area. I think this is a bug. As can be seen in the attached screenshot, it assigns the same %MW or %QW address to all elements of the array. I hope Codesys team can solve this problem in the next version. Best regards, Imdat
Last updated: 2025-03-17

Post by noahpiskor on Configuration dialog screen with a Frame CODESYS Forge talk (Post)
Hello, I'm trying to configurate a frame. My goal is to have a frame with the symbol of a component. When I press the symbol a dialog screen of my choosing comes up. What variable should be used in the frame configuration, that I can put in the input configuration of my symbol. so that I can chose which dialog screen comes up on my multiply instances of this frame. Kind regards. Noah Piskor CODESYS V3.5 SP19 Patch 6
Last updated: 2024-04-02

Post by phoward131 on Text List Fallback Value CODESYS Forge talk (Post)
I am relatively new to Codesys and I'm trying to develop an HMI that displays what mode a particular device is in based on an integer value. I am currently using dynamic texts with a text list which works fine but I am looking for a way to display a particular string (ie 'Unknown') when the index doesn't match any of of the indices in the text list. I can enter 'Unknown' in the text property of the text field element which works as expected but it displays the single quotes on the visualization. How can I escape these quotes to simply display the word Unknown? Thanks!
Last updated: 2024-03-22

Post by toffeebonbon on EL7041-0052 - does it run with EL7041 SoftMotion? CODESYS Forge talk (Post)
Good morning everyone. In my setup I am trying to use a couple of EL7041-0052 (the EL7041 variant without terminals for an encoder) to run stepper motors without feedback. When using the softmotion drivers for the EL7041 (Rev22 and Rev24, even selecting external feedback type doesn't work) the device log shows warnings for the corresponding hardware: "SDO write error 0x1 -> 0x8012:0x08 eError 0x1 AbortCode 0x6090011". 0x8012:0x08 is the register for the Feedback Type. My best guess was setting the the register value in the start parameters to zero, but the result is the same. What else can I try to get the hardware to work? I have screenshots attatched showing the running fieldbus and the log messages. EDIT: One clarification: the "device log" that shows the error is the PLC, not the ethercat terminal. The log of the terminal itself shows neither errors nor warnings. BR Robert
Last updated: 2023-11-29

Post by tomast on Codesys and Siemens SINAMICS 20 modbus RTU "Response CRC Fail" CODESYS Forge talk (Post)
Hi everyone, I'm currently working on a project involving the control of 5 VFDs via Modbus RTU, this time using the WAGO 750-8212 CPU. So far, I've managed to make progress, but I've encountered an issue. While I can successfully read and write to all the registers I need, I consistently encounter a "Response CRC Fail" error when attempting to write the value 1151 to the STW register at address 40100. I'm able to set the frequency via register 40101 and adjust all other parameters using different registers. Setting STW to 1150 results in the drive ready boolean from the ZSW-bit being received instantly. However, the moment I attempt to send 1151 to register 40100, I immediately receive the "Response CRC Fail" error for all channels. I've also attempted to use combined control, employing Modbus for frequency control and starting from a digital input. Everything seems to function properly until I send the start command to the VFD. Interestingly, I consistently encounter the same error the moment I send the start command, regardless of whether I use register 40006 (high) or 40100 (1151). Could someone please assist me in resolving this issue?
Last updated: 2024-03-21

Post by dogulas on OPC UA C# client connecting to OPC UA CODESYS server CODESYS Forge talk (Post)
Ok, for the sake of completeness in case anyone else has this problem. I can tell you that what finally worked for me was to change the line: // create an ExtensionObject to wrap the value to be written ExtensionObject extensionObject = new ExtensionObject( new ExpandedNodeId("GVL_StructA", 5), structAData ); to: // create an ExtensionObject to wrap the value to be written ExtensionObject extensionObject = new ExtensionObject( new ExpandedNodeId("GVL_StructA|defaultbinary", 5), structAData ); I'm sure there are many other problems that could cause this very generic error, but this was my problem.
Last updated: 2024-12-30

Post by phryniszak on RPI CANFD CODESYS Forge talk (Post)
Hi, I have rpi with CANFD MCP2518FD. Classic can communication is working OK but when I try open in CANFD hDriver := CL2.FdDriverOpenH(usiNetId := 0, uiNominalBaudrate := 500, uiDataBaudrate := 0, xSupport29Bits := FALSE, ctMessages := 100, peError := ADR(eError) error is returned with value 10226 which is not documented (https://content.helpme-codesys.com/en/libs/CAA%20Can%20Low%20Level%20Extern/Current/CAN-Low-Level/Enums/ERROR.html#error) CAA CanL2 is 3.5.21 version. Question is: 1. Is anyone get CANFD working? 2. What is meaning of this value (10226)? Regards, Pawel
Last updated: 2025-08-09

Post by phryniszak on RPI CANFD CODESYS Forge talk (Post)
Hi, I have rpi with CANFD MCP2518FD. Classic can communication is working OK but when I try open in CANFD hDriver := CL2.FdDriverOpenH(usiNetId := 0, uiNominalBaudrate := 500, uiDataBaudrate := 0, xSupport29Bits := FALSE, ctMessages := 100, peError := ADR(eError) error is returned with value 10226 which is not documented (https://content.helpme-codesys.com/en/libs/CAA%20Can%20Low%20Level%20Extern/Current/CAN-Low-Level/Enums/ERROR.html#error) CAA CanL2 is 3.5.21 version. Question is: 1. Is anyone get CANFD working? 2. What is meaning of this value (10226)? Regards, Pawel
Last updated: 2025-08-09

Post by ryusoup on 'keep last value' option in CODESYS EtherCAT CODESYS Forge talk (Post)
Hello, I’m using CODESYS EtherCAT Master on a Raspberry Pi controller with several remote I/O modules. I’m facing an issue where the input values from the remote I/Os drop to 0 when a connection error occurs. Is there a way to configure a β€œkeep last value” behavior (i.e., hold the last valid input) instead of defaulting to 0 on communication loss? Best regards,
Last updated: 2025-11-18

Post by sigurdrb on How to change OPC NodeId IdentifierType CODESYS Forge talk (Post)
Did you find a solution for this? Experiencing the same when I'm setting up the server using "Communicartion manager"
Last updated: 2025-01-20

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 fless on Warning C0564 when compiling CNC project with variables program CODESYS Forge talk (Post)
Hello, we are porting a CNC project from codesys 3.5.16 to codesys 3.5.19. The project has lots of CNC programs with variables. now we get hundreds of messages like this. [WARNING] CNC Test SP19: TestCNC SPS: PLC Logic: Application: C0564: A reference to uninitialized variable varCNC is used for initialization of TestCNC_D. Accessing the uninitialized variable may result in unexpected behavior. The objects program_name_D are implicit generated by codesys. I see no way to generated them after the variables. Is there a way to correct the initialization order? We know how to suppress this warning. But we need a clean solution as the warning already saved us in a other nonCNC project. Attached a small demo of the problem.
Last updated: 2024-03-21

Post by tk096 on Fieldbus has lost synchronicity CODESYS Forge talk (Post)
Hi, a few suggestions on how to tackle the problem: - it might help to increase the cycle time of the ethercat task - increase the value of the ethercat parameter DCInSyncWindow (https://content.helpme-codesys.com/en/libs/IODrvEtherCATDriver/Current/pou-IoDrvEtherCAT/DCInSyncWindow.html) (see attached image) - enable FrameAtTaskStart (https://content.helpme-codesys.com/en/libs/IODrvEtherCATDriver/Current/pou-IoDrvEtherCAT/FrameAtTaskStart.html) in the ethercat master (see attached image) - if the drives can handle the synchronization problems, checking of the synchronization can be deactivated using SMC_Set_ETC_DCSyncSupervision (https://content.helpme-codesys.com/en/libs/SM3_Drive_ETC/Current/SMC_Set_ETC_DCSyncSupervision.html).
Last updated: 2024-04-11

Post by arnog on Two drives on one axis, Gantry Robot CODESYS Forge talk (Post)
Hi TK_Jenssen did you found a solution I am setting up the samelike gantry only with two z-axes which are mounted on fix position with an X axes between the two z-axes. The movement and position of both z-axes must be very well aligned and calibrated. Maybe also to be adjusted by programming. Can you sent an example of your solution?
Last updated: 2023-08-25

Post by dkugler on TargetVisu Freezing CODESYS Forge talk (Post)
The only weird situation i remeber with particular or complete frozen target visu was after the rtc clock was fallen or set back to the past. It looked like after running a while the alarm history database crashed during writing entries at a date lot of years in the past. After setting the rtc clock to actual date/time and deleting the alarm db every thing worked fine. I don't know, if this is/was a problem of our PLC hardware/firmware? Maybe check date/time at your system?
Last updated: 2024-09-13

<< < 1 .. 28 29 30 31 32 .. 142 > >> (Page 30 of 142)

Showing results of 3526

Sort by relevance or date