Search talk: array address

 
<< < 1 .. 21 22 23 24 25 .. 30 > >> (Page 23 of 30)

Post by jeffgamsby on Accessing ModbusTCP addresses from python CODESYS Forge talk (Post)
Hi, I am new to modbusTCP and I am trying to access Input registers from codesys (3.5.SP13). The offset is 16#0000 and I am trying to access Channel 1[24] %IW24 to pull analog values. I am using pyModbusTCP and I need to supply a modbus address and the number of registers to read. What does 16#0000 mean in terms of the actual offset, how do I translate this number plus the channel to access this info via python? Any help would be appreciated, thank you.
Last updated: 2023-09-20

Post by ofey on Symbol configuration / GVL CODESYS Forge talk (Post)
Hi! I have som variables that I communicate to a Modbus Master. These variables are declared in a "Global Variable List" where I have assigned them memory addresses. To organize this mapping I want to make a MODBUS list where I show all the variable names together with the memory address. Is there an easy way to export this list from CODESYS? Either through script or some export function maybe?
Last updated: 2023-10-11

Post by ofey on Symbol configuration / GVL CODESYS Forge talk (Post)
Hi! I have som variables that I communicate to a Modbus Master. These variables are declared in a "Global Variable List" where I have assigned them memory addresses. To organize this mapping I want to make a MODBUS list where I show all the variable names together with the memory address. Is there an easy way to export this list from CODESYS? Either through script or some export function maybe?
Last updated: 2023-10-11

Post by deeksha on RaspberryPi with CoDeSys throwing error CODESYS Forge talk (Post)
I am trying to access Raspberry pi on CoDeSys, but it throws an error says, "No connection to target: An established connection was aborted by the server." I am able to access Raspberry pi via MobXterm, but on CoDeSys, it throws error. Looking for help in resolving this error. Error snap is attached. IP address is scanned here successfully, but when I am trying to install Raspberry pi packet: 4.0.0.0, it throws this error.
Last updated: 2024-08-23

Post by warrumungi on Opening a Dialog on a specific Client from ST CODESYS Forge talk (Post)
Hi Thanks, Manuel, for providing this solution and insight. I too had exactly the same problem as you did. While I did implement a custom filter, I'd also like to point out what jinlee mentioned above...I see no reference to VU.PublicVariables.Clients.Current anywhere?? In my case I only needed to show a dialog on a "master" client, not all the clients, so I filtered by IP address to do this.
Last updated: 2024-11-05

Post by nz-dave on ethercat softmotion axis error CODESYS Forge talk (Post)
Hi all I'm having a little trouble get my axis to work. i can turn them off and on. i can run each servo manually inputting directly to the mapping address. as soon as i try to use any FB's like jog etc my servos wont move and error out. so far I've had error "SMC_ERROR.SMC_DI-POSITIONLAGERROR" and another one about not calling a fb. cheers. in the attachment I have just jogged X_Axis with the MC_JOG FB
Last updated: 2025-03-10

Post by fschuler on No connection to Raspberry at runtime installation CODESYS Forge talk (Post)
Hi, I try to install the Codesys realtime in a Raspberry PI 3B+. When I click on the installation button I get always the message No connection to device: An established connection was aborted by the server. Raspberry 3B+ with newest raspberry PI OS. Codesys 3.5.15 Patch 1 Codesys Runtime Package 3.5.16.20 SSH is activated. I can login with Putty Ping is possible IP address search is possible Just the installation is not started.
Last updated: 2025-07-23

Post by camjam on BOOL variable in OPC UA and modbus simultaneously CODESYS Forge talk (Post)
I have come across this. The only way i could get it to work would be to define a word that is also the same address as the Bools. eg %MX600.0 through to %MX600.15 would be individually defined in the variables and them have another variable word defined at %MW300. You still need to break out the word in what ever program you are using to read/write the OPCUA tags.
Last updated: 2025-08-18

Post by gunstr on CODESYS control on RPi starts, shortly runs, then exits CODESYS Forge talk (Post)
The problem has been resolved. Two findings are described below for future reference. The new RPi hw delivered during August 2025 has a MAC address from a new vendor series that is not supported by old runtimes. 4.17.0.0 or above is required. 4.17.0.0 does not pick up the correct architecture during installation and aarch64 has to be manually configured either in the GUI under operations or in /etc/codesyscontrol/CODESYSControl_User.cfg under the [CmpRasPi] section.
Last updated: 2025-09-16

Post by monteta on Automation without UI CODESYS Forge talk (Post)
Problem solved, Once the perform_network_scan() is done, y just had to recover the address and using set_gateway_and_address(). Now i'm looking how to deploy all my device's applications on the PLC, I guess it will looks like : for app in allapplication: with online.create_online_application(app) as onlineapp onlinedevice = onlineapp.get_online_device() online.set_default_credentials(x,y) try: onlineapp.login(OnlineChangeOption.Keep, False) except Exception as e: msg = str(e).lower() if "rescan" in msg : print("PLC service might be off") elif "targetdo" in msg: print("Bad credentials") else print(msg) else: onlineapp.create_boot_application()
Last updated: 2025-09-29

Post by scoob on ModbusFB - Slow Response Time CODESYS Forge talk (Post)
Hello, I have been trying to use the ModbusFB functions so I can put some code into libraries, but it seems to be very slow for me. I have a Modbus device with 100ms registers. I previously setup 10 channels in the 'traditional' Modbus Slave with channels and mappings - and set a cyclic trigger at 100ms - this worked fine. I then tried the ModbusFB example, and setup reading the same 10 blocks of modbus addresses, copying the example and putting all of the requests into an array and triggering the requests sequentially. I timed how long the requests are taking to get round to each one, and it is around 1s 450ms. How do I speed this up to match the cyclic time? IF NOT(init) THEN init := TRUE; // Set the required IP address: ipAddress[0] := 192; ipAddress[1] := 168; ipAddress[2] := 1; ipAddress[3] := 10; // Pass the required IP address to the clinet FB: client_NetworkSwitch.aIPaddr := ipAddress; client_NetworkSwitch.udiLogOptions := (ModbusFB.LoggingOptions.ClientConnectDisconnect OR ModbusFB.LoggingOptions.ClientReceivedValidReplies); // Try to connect the client client_NetworkSwitch(xConnect:=TRUE); // Configure all the channels to read connecting them to the client: portStatus_Request(rClient := client_NetworkSwitch, uiStartItem := 4096, uiQuantity := 32, pData := ADR(portStatus), udiReplyTimeout := udiReplyTimeout); portSpeed_Request(rClient := client_NetworkSwitch, uiStartItem := 4352, uiQuantity := 32, pData := ADR(portSpeed)); flowControl_Request(rClient := client_NetworkSwitch, uiStartItem := 4608, uiQuantity := 32, pData := ADR(flowControl)); linkUpCounter_Request(rClient := client_NetworkSwitch, uiStartItem := 5888, uiQuantity := 32, pData := ADR(linkUpCounter)); txPacketCounter1_Request(rClient := client_NetworkSwitch, uiStartItem := 8192, uiQuantity := 100, pData := ADR(txPacketCounter1)); txPacketCounter2_Request(rClient := client_NetworkSwitch, uiStartItem := 8292, uiQuantity := 28, pData := ADR(txPacketCounter2)); rxPacketCounter1_Request(rClient := client_NetworkSwitch, uiStartItem := 8448, uiQuantity := 100, pData := ADR(rxPacketCounter1)); rxPacketCounter2_Request(rClient := client_NetworkSwitch, uiStartItem := 8548, uiQuantity := 28, pData := ADR(rxPacketCounter2)); txErrors_Request(rClient := client_NetworkSwitch, uiStartItem := 8704, uiQuantity := 64, pData := ADR(txErrors)); rxErrors_Request(rClient := client_NetworkSwitch, uiStartItem := 8960, uiQuantity := 64, pData := ADR(rxErrors)); // Trigger all client requests initially FOR clientRequestsCnt := 0 TO (SIZEOF(clientRequests)/SIZEOF(clientRequests[0]))-1 DO pClientRequest := clientRequests[clientRequestsCnt]; pClientRequest^.xExecute := TRUE; END_FOR // Prepare sequential trigger / control of client requests. clientRequestsCnt := 0; pClientRequest := clientRequests[clientRequestsCnt]; END_IF // Call the client to do request processing: client_NetworkSwitch(); // Now we trigger client request sequentially ... IF NOT pClientRequest^.xExecute AND NOT pClientRequest^.xDone AND run AND client_NetworkSwitch.xConnected THEN pClientRequest^.xExecute := TRUE; END_IF // .. and check result/error IF pClientRequest^.xExecute AND run AND client_NetworkSwitch.xConnected THEN IF pClientRequest^.xDone THEN // Prepare next trigger of client request (a rising edge of xExecute) pClientRequest^.xExecute := FALSE; IF clientRequestsCnt < SIZEOF(clientRequests)/SIZEOF(clientRequests[0])-1 THEN // next client request clientRequestsCnt := clientRequestsCnt + 1; ELSE clientRequestsIterationCounter := clientRequestsIterationCounter + 1; clientRequestsCnt := 0; END_IF pClientRequest := clientRequests[clientRequestsCnt]; END_IF END_IF I did try a semi-coded way using the IoDrvModbusTCP library, and setting the slave com settings, then 10 commands and 10 requests, then using a TP on xDone as a pause, before triggering another request - this is time the delay is around 120ms - so the device is fine with the speed, just something I am doing wrong in the ModbusFB method I am sure.
Last updated: 2024-04-26

Post by programmierer on Implementing UDP Communication CODESYS Forge talk (Post)
Hello everyone, I hope you can help me with my problem. I am new to programming and am currently working with a WAGO controller in our lab, which controls a heat pump. My goal is to send the electrical power of the heat pump (Pel_WP) via a UDP connection to a specific IP address. I am using Codesys version 2.3 and following the guide I found here: https://forge.codesys.com/forum/de/396/genmed-Konfiguration%20der%20UDP%20Kommunikation%20Cosesys%20S7.pdf. I have adapted the guide to suit my needs. The data sending works since I can force the reception value Pel_WP and the data is sent accordingly. However, I am having trouble with the receiving part. The reception value is not being correctly received, and the diSocket variable shows -1. The connection between the heat pump and the WAGO controller seems to be set up correctly, as the heat pump is listed under the communication parameters with the correct IP address. I have also attached images to provide a better view of the setup. I would greatly appreciate any support or suggestions for a solution. Thank you in advance!
Last updated: 2024-08-02

Post by lbartik on J1939 TX/RX PDU1 CODESYS Forge talk (Post)
Is it possible to transmit a PDU1 PGN using the J1939 manager and local device? What if I need to transmit a PGN RQST via 0xEA00 (PGN 59904)? How would I do this P2P (Destination < 0xFF) or broadcast (Destination 0xFF)? I don't think this is possible for any destination type. I don't think it's possible to receive broadcast PDU1 messages either. For example, an address claim PGN 60928 (0x18EEFF80) is addressed to all nodes (0xFF) and not any specific local device so it will be filtered out. These are major oversights in the IoDrvJ1939 library to not support every PDU1 RX/TX scenario. IoDrvJ1939 supported scenario: 1. Receive (RX) PDU1 (P2P) destination-specific (PDU-specific < 255) to local device with matching address IoDrvJ1939 unsupported scenarios: 1. Receive (RX) PDU1 (P2P) global (PDU-specific = 255) 2. Transmit (TX) PDU1 (P2P) global (PDU-specific = 255) 3. Transmit (TX) PDU1 (P2P) destination-specific (PDU-specific < 255)
Last updated: 2024-09-23

Post by latassan on RaspberryPi 5 gateway problem CODESYS Forge talk (Post)
Hello, I'm trying to use a raspberryPi 5 as a PLC. I fixed its IP address, I can ping it. I've also installed the CODESYS Control for Raspberry Pi 64 SL runtime on it. So I've created a gateway (IP address of the Raspberry, TCP port 1217). I see the green dot next to this gateway. When I do a network scan, I can see my raspberry (see photo). When I try to connect to it, I have to define an administrator profile, which I do. On validation, I see a message: No device is responding to the scan request. I've checked that port 1217 is listening on the raspberry, I've uninstalled the runtime then installed it again, but I can't connect. Also, when I try to configure the user groups before connecting, I see that Offline mode is not supported by the device, even though I'm connected to it in the Deploy Control SL tab. When I try to refresh, I see: Gateway not configured properly. How can I connect to my Raspberry? Have I defined my gateway incorrectly?
Last updated: 2025-06-12

Post by ragarcia on Error while using UpdateConfiguredIPSettings to change IP address CODESYS Forge talk (Post)
Hello everyone, I am trying to change dynamically by code the IP address of a Weidmuller controller. So I am basically using IoDrvEthernet library to use UpdateConfiguredIPSettings function but I am getting constantly the 'INVALID_STATE' error. Even though I am following a procedure it should work: * First I added on the config file of codesys the following: [SysSocket] Adapter.0.Name="eth0" Adapter.0.EnableSetIpAndMask=1 Adapter.1.Name="eth1" Adapter.1.EnableSetIpAndMask=1 * Secondly I am first disabling the ethernet interface by using Ethernet_0.Enable = FALSE and then executing DED.Reconfigure. After that, I run the Ethernet_1.updateConfiguredIPSettings Code: Ethernet_1.Enable:= EnableDisable; Reconfigure(xExecute:= TRUE, itfNode:= Ethernet_1, xError=> ErrorReconfigure, eError=> ErrorCodeReconfigure); IF Reconfigure.xDone THEN ErrorCodeIP:= Ethernet_1.UpdateConfiguredIPSettings(IPAddress:= newIP, SubnetMask:= newMask, Gateway:= newGW); END_IF IF Reconfigure.xDone OR Reconfigure.xError THEN Reconfigure(xExecute:= FALSE); END_IF Ethernet_1.Enable:= TRUE; Reconfigure(xExecute:= TRUE, itfNode:= Ethernet_1); IF Reconfigure.xDone OR Reconfigure.xError THEN Reconfigure(xExecute:= FALSE); END_IF Can someone help me? Thank you. All I am trying is to find a way to change dynamically with code, the IP addresses of my controller (2 ethernet ports).
Last updated: 2023-12-11

Post by yannickasselin on Connect to remote PLC via local pc and teamviewer CODESYS Forge talk (Post)
Yes it is possible. I did it a lot of times using TeamViewer VPN. Unfortunately, TeamViewer VPN only works on Windows. If the remote PLC is a Codesys runtime running on Windows, you should be able to login directly using TeamViewer VPN if it is installed on the PC/PLC. If it is not Windows based, you can still do it but you need to have a Windows based PC acting as a gateway in the middle. In this case you need to enable IP Forwarding on the Windows remote PC (the gateway) and you need to setup the gateway IP address on the PLC to be the address of the Windows PC. Then you need to add a route on your local PC to point to the gateway PC for Codesys communication. I know it may not be detailed enough but I did not want to make a whole tutorial on how to do it. Bottom line, it is possible. I do it all the time.
Last updated: 2024-02-02

Post by youness on No source code available (cip object) CODESYS Forge talk (Post)
Hi yotaro, hope your problem was resolved. I had the same, but with an other library title. This exception is not detected during compilation, but rather at a given position in the program (when switching to a given visualization). Although the exception is generated at this point, it does not involve the visualization in question. This error is due to one of 3 reasons: 1) A division by zero somewhere: The program is able to detect divisions by zero at compile time. But in the case of a variable, which takes a valid value at init and changes to 0 at a later stage. 2) An invalid pointer: (either because it has a value of 0, or because it points outside the memory reserved for the program) is being dereferenced. Locate any pointers or interfaces you have in the code and check them - you should also be wary of mixing inline modifications and pointers. 3) Array overflow: Generally when a processing operation is executed outside the array's definition range. Example: a write loop with n iterations is executed on an array of dimmension n-1. On the other hand, the error message may not appear. In the latter case, the error may have fatal consequences, as the overflow has induced writing to potentially forbidden memory areas. This problem can be explained by the fact that it's not always the adjacent memory areas of PLC_PRG that are overwritten, but the memory areas that are randomly allocated to the array during compilation. In this case, however, there is no entry in the log, so you need to integrate the "Implicit Check function", which checks the line of code generating the error. To integrate this functions, click on Application --> POU for implicit controls Regards,
Last updated: 2024-07-16

Post by laurits on Max lines of code, codesys CNC ? CODESYS Forge talk (Post)
Hi, yes now its working, to get "QUEUE.bFull" to work, I've had to set the "QUEUE.nNumReservedEntries" to 3. (I tried different values here, only effect for larger values i can see is the the queue capacity gets smaller.) I've noticed the movement is slowing down when it reaches the end of the "fill Up", must be because of the "checkVelocity" can only see the current "QUEUE". Any way of solving this ? BUF : ARRAY[0..20000] OF SMC_GEOINFO; xp : ARRAY[1..100000] OF REAL; yp : ARRAY[1..100000] OF REAL; CASE iState OF 000: IF R_TRIG_bStart.Q THEN iState := iState + 1; END_IF bReady := FALSE; //initialize Queue GEO.dT1:=0; GEO.dT2:=1; GEO.dToolRadius := 0; GEO.dVel := 15000; GEO.dVelEnd := 15000; GEO.dAccel := 2000; GEO.dDecel := 2000; GEO.iObjNo := 0; GEO.piDestPos.dX := 0; GEO.piDestPos.dY := 0; QUEUE.bEndOfList := FALSE; QUEUE.nPastMarker := -1; QUEUE.nWritePos := 0; QUEUE.pbyBuffer := ADR(BUF[0]); n := 0; sMC_CheckVelocities(bExecute:= FALSE); SM3_CNC.SMC_SetQueueCapacity(ADR(QUEUE), SIZEOF(BUF)); QUEUE.nNumReservedEntries := 3; 001: FOR i := 1 TO SIZEOF(xp)/SIZEOF(xp[1]) DO xp[i] := UDINT_TO_REAL(i) * 0.01; yp[i] := UDINT_TO_REAL(i) * 0.01; END_FOR iState := iState + 1; 002: WHILE NOT QUEUE.bFull DO // when the Queue is full, wait until it has been processed by the following FBs n := n + 1; GEO.iSourceLine_No := n; GEO.piStartPos := GEO.piDestPos; // copy last destination GEO.iMoveType := LIN; // generate linear movement GEO.iObjNo := GEO.iObjNo + 1; // calculate number GEO.piDestPos.dX := xp[n]; // generate position GEO.piDestPos.dY := yp[n]; SMC_CalcLengthGeo(pg := ADR(GEO)); // calculate length of object with the help of the standard function SMC_AppendObj(poq:=ADR(QUEUE), pgi:=ADR(GEO)); //append object to queue IF n = UDINT_TO_DINT( SIZEOF(xp)/SIZEOF(xp[1])) THEN // all target positions processed QUEUE.bEndOfList := TRUE; iState := iState + 1; EXIT; END_IF END_WHILE sMC_CheckVelocities(bExecute:= TRUE, poqDataIn:= ADR(QUEUE)); bReady := TRUE; // Send message to smc_interpolator to start 003:
Last updated: 2025-06-04

Post by docker on Webvisu client connection monitoring CODESYS Forge talk (Post)
Hi mate, With this snippet i was able to see the lastusage variable count, but it would not iterate between clients? i was only able to access the data of the target visu. it threw an error with the array of pointers stating it was not able to convert etc. also when i tried it with the while loop it created an endless loop and crashed the program. any ideas? Thankyou
Last updated: 2024-09-10

Post by garrian on How to write multiple coils (Modbus FC15) CODESYS Forge talk (Post)
Thanks! As far as I can see, the client can only send words. And on the server side there are an array for each of the functions: bool for coil and discrete, word for holding and input registers. I assume I can use holding register, then use bit mapping on the words instead of coils. But I really want to use the FC15/coils.
Last updated: 2024-11-17

Post by rmaas on STRING conversions to DWORD CODESYS Forge talk (Post)
Hi, The '' characters in Codesys are there only to indicate it is a STRING type. They are not actually added to the string, maybe you are adding them unintentionally in the concat function? You can send your data from Codesys to Hercules to verify... Another option is to send the data as an array of bytes instead of a string, with every byte representing 1 ASCII character. https://www.ascii-code.com/ This way you are 100% sure Codesys is not adding any unwanted characters.
Last updated: 2025-01-31

Post by andre-luis on Device diagnosis ( EtherCAT IO card ) CODESYS Forge talk (Post)
Hi @TimvH, In the meantime, I did some experiments and could find a way to achieve similar result. I made some tests, removing the last card from the array, seeing the change on status. PROGRAM P_IOS_STATUSES VAR devStateInput : DEVICE_STATE; devStateOutput : DEVICE_STATE; devStateEncoder : DEVICE_STATE; END_VAR devStateInput := IoConfig_Globals.EL1819.GetDeviceState(); devStateOutput := IoConfig_Globals.EL2809.GetDeviceState(); devStateEncoder := IoConfig_Globals.EL5151.GetDeviceState(); GVL.bInputCardOK := ( devStateInput = DEVICE_STATE.RUNNING ); GVL.bOutputCardOK := ( devStateOutput = DEVICE_STATE.RUNNING ); GVL.bEncoderCardOK := ( devStateEncoder = DEVICE_STATE.RUNNING ); Many thanks for your quick and extensive reply.
Last updated: 2025-02-06

Post by jampid on Reset an Array[] in one line, possible? CODESYS Forge talk (Post)
Bonjour, La librairy est SYSMEM en Codesys v3.5. Pour accéder à la fonction : SysMem.SysMemSet. Il y a plein d'autres fonctions intéressantes : SysMemSwap, SysMemMove, SysmemCpy, ... Cela évite de créer des Boucles et permet de bien utiliser ADR() et SIZEOF() Il existe aussi une librairie CAA Memory qui mérite intérêt; Par exemple MEM.MemFill pour remplir un tableau d'octets. Bons développments! Il suffit d'ajouter ces bibliothèques dans le gestionnaire de bibliothèque pour les utiliser. JM
Last updated: 2025-04-03

Post by jzhvymetal77 on Special Chars in Visualizationfor QR code string CODESYS Forge talk (Post)
In Visualization, is there any way to make special characters in a string display properly in a Text object? I wrote a function block to create QR codes at runtime. My code uses “$DB,” which in ASCII should render as a solid block. The code works, but to display it in Visualization I had to create multiple rectangles with visibility bound to a BOOL array. That works, but since each BOOL must be exposed as a separate variable, it consumes most of the available monitoring resources. See Attached image.
Last updated: 2025-09-29

Post by jzhvymetal77 on Special Chars in Visualizationfor QR code string CODESYS Forge talk (Post)
In Visualization, is there any way to make special characters in a string display properly in a Text object? I wrote a function block to create QR codes at runtime. My code uses “$DB,” which in ASCII should render as a solid block. The code works, but to display it in Visualization I had to create multiple rectangles with visibility bound to a BOOL array. That works, but since each BOOL must be exposed as a separate variable, it consumes most of the available monitoring resources. See Attached image.
Last updated: 2025-09-29

<< < 1 .. 21 22 23 24 25 .. 30 > >> (Page 23 of 30)

Showing results of 727

Sort by relevance or date