Post by oymyakon on Modbus Lockup
CODESYS Forge
talk
(Post)
Hi i have a project where i am communicating with many modbus devices using TCP to serial. This is all working extremely well except when i turn one of the remote devices off. If i leave the auto reconnect on it still doesn't talk to the rmianing devices and if i turn Auto reconnect off it locks up. Any help would be appreciated. Paul.
Last updated: 2024-08-07
Post by oymyakon on Modbus Lockup
CODESYS Forge
talk
(Post)
Hi i have a project where i am communicating with many modbus devices using TCP to serial. This is all working extremely well except when i turn one of the remote devices off. If i leave the auto reconnect on it still doesn't talk to the rmianing devices and if i turn Auto reconnect off it locks up. Any help would be appreciated. Paul.
Last updated: 2024-08-07
Post by squiggleypuff on Can't Add New Version of Modbus TCP Master
CODESYS Forge
talk
(Post)
I'm having a tough time trying to get Modbus working on a Festo CPX-E PLC; it throws these pre-compiler errors as soon as I add in my Modbus TCP Master 3.5.12.30 to my project: I'm confused about the C0046 error, as I have IODrvModbusTCP 4.3.0.0 Library installed. So I thought maybe I needed to use the newest Modbus TCP Master 4.3.0.0, which is in my device repository: However, whenever I go to add this underneath the Ethernet adapter (which is version 4.2.0.0), the only TCP Master version available is the old 3.5.12.30 one, even if I have Display all versions checked.: I even went so far as to delete the old version, but then there were no options to add a Modbus TCP Master under my Ethernet adapter. What needs to be done to use the newest Modbus TCP Master? Or are these pre-compiler errors unrelated and I'm missing something? Any help greatly appreciated.
Last updated: 2024-04-04
Post by sturmghost on Visualization using methods and cyclic ST-calls
CODESYS Forge
talk
(Post)
I found a way to do it: You can use, for example, the text variable property of any visualization element and call a function in it. Example: Write a test POU as a function (FUN), like MyTestFun which need a boolean Variable as an input value. Now write into the text variable property: MyTestFun(bBooleanValue) Thats it. The function is called at each visu_task cycle.
Last updated: 2024-01-22
Post by jinlee on Multiple WebVisu
CODESYS Forge
talk
(Post)
Hi, thank you for replying. Basically, I have a main visu with frame selection. So, under some condition the frame will switch to a specific frame. It used to be controlled by variable using "Switch frame variable". However, I realise it will change all the HMI screen at one time. So I removed the variable, and still looking for a solution to do that. Do you have any idea?
Last updated: 2024-02-06
Post by sumit on Not able to see input data coming from eip adapter on codesys
CODESYS Forge
talk
(Post)
Hello there, I have an eip adapter running (remotely) that is sending data back to eip scanner (running on codesys). I can send data from scanner (codesys) to the adapter but not getting the data back from the adapter. I have verified the incoming data on wireshark but I don't see this data in the codesys. I have tried local variable mapping and global variable mapping not variable values just stays at 0. Please guide.
Last updated: 2024-02-29
Post by stuartjr on Disabling forcing of specific variables
CODESYS Forge
talk
(Post)
Is there a way that I can create a variable in a GVL that I can control with logic but a user can not put a force on this variable. I have looked at the access rights but this seems to only limit editing the GVL or POU. This variable will only be assigned a value in one POU but it will be used throughout many other POUs.
Last updated: 2024-03-15
Post by balazska2 on Position values with integer variables
CODESYS Forge
talk
(Post)
Hello guys! https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_elem_label.html My question: Could I give an integer variable to the Position records (in the Element list => Position => width / height)? If yes, how? I defined a TEST integer variable with 300 value. I tried to add this variable to the width record (.TEST or only TEST), but if I saved, the value jumps back to 0. Thanks for your help! :)
Last updated: 2024-10-03
Post by wildcard on Modbus Client Request Not Processed
CODESYS Forge
talk
(Post)
Hi, does anyone has a solution for this issue. I've the same problem. I've implemented a very simple client based on the Modbus Examples and connected the soft PLC to a Modbus Simulator. PROGRAM ModbusClient VAR initDone : BOOL := FALSE; errorID : ModbusFB.Error; client : ModbusFB.ClientTCP; timeout : UDINT := 500000; replyTimeout : UDINT := 200000; aUINT : ARRAY [0..8] OF UINT; clientRequestReadHoldingRegisters : ModbusFB.ClientRequestReadHoldingRegisters; clientRequestsCnt : UINT := 0; clientRequestsProcessCnt : UINT := 0; ipAddress : ARRAY[0..3] OF BYTE := [10,54,0,72]; END_VAR IF NOT initDone THEN initDone := TRUE; client(aIPaddr:=ipAddress, udiLogOptions:=ModbusFB.LoggingOptions.All); client(xConnect:=TRUE, ); clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout); clientRequestReadHoldingRegisters.xExecute := TRUE; clientRequestsCnt := 0; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := TRUE); IF clientRequestReadHoldingRegisters.xError THEN clientRequestsCnt := clientRequestsCnt +1 ; errorID := clientRequestReadHoldingRegisters.eErrorID; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := NOT clientRequestReadHoldingRegisters.xExecute); When the system is running I do get the following on the logs: 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= Client.RequestProcessed ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 state=Error 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 change state Error -> None timestamp=63843421226 2024-05-13T10:18:08.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state None -> Init timestamp=63844421420 2024-05-13T10:18:09.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state Init -> Error timestamp=63845421675 But the errorID is jumping between OK and RequestNotProcessed. Any help is very appreciated which gives me a hint what I'm doing wrong. Thanks
Last updated: 2024-05-13
Post by xnoop on MBTCP Slave configuration
CODESYS Forge
talk
(Post)
Hello, I use Codesys 3.5 SP18 Patch 4 (64 bit) My Codesys project is composed of several dozen of Modbus TCP Slaves. I want to configure each of them by define : - Modbus TCP Slave Configuration : Name, IPAddress, port - Channels - Mapping I can't afford to configure manually and I need to find automatic way What possibilities does the Codesys offer? 1. I know it possible to use python script to create Modbus TCP Master and Slave. But I don't find anyway to create Channels and Mapping through the API 2. I 've tested to set mapping with file.csv on a Modbus Tcp Slave, but no way to import channels definition from file 3. I 've tried to use PLCOpenXml file. For example I 've create a project with an Ethernet device. I've exported it in PlcOpenXml file. After delete the Ethernet device, I've imported the PlcOpenXml file without success. I've tried the same by creating Modbus TCP Slave. Could you help me to find to good way ? Thanks
Last updated: 2024-06-19
Post by ahuckphin on Issues with Modbus Slave with Raspberry Pi
CODESYS Forge
talk
(Post)
I have a DFRobot RS485 temperature & humidity sensor (SEN0438) connected to my Raspberry Pi via a USB to RS485 adapter. I am able to connect and read the sensor data when running a python code locally. However in Codesys, I encounter this error "A bus error has occurred." and "There was no response in time". Could this be because of Modbus Server Channel and Modbus Server Init configuration on my part? Admittedly I am new to Codesys. To get to this stage, I: 1. added some lines to CODESYSControl_User.cfg 2. added "Modbus_COM" in Codesys and set "Serial Port Configuration" under "General" 3. added "Modbus_Master_COM_Port" in Codesys and checked transmission mode is set to "RTU" 4. added "Modbus_Slave_COM_Port" in Codesys and checked server address is set to 1 (also set 1 in my sensor) 5. added 1 channel and 1 init for "Modbus_Slave_COM_Port" under "Modbus Server Channel" and "Modbus Server Init"
Last updated: 2024-07-10
Post by snhatton on Saving variable values on power cycle (RevPi Connect)
CODESYS Forge
talk
(Post)
Have you tried using the persistence manager which uses the file system of the controller to store persistent variables?
Last updated: 2023-12-04
Post by goki on Problem mit String in Globaler Variable
CODESYS Forge
talk
(Post)
Hallo Zusammen Gibt es ein Beispiel wie ich dies so im Codesys 3.5 umsetzen kann?
Last updated: 2024-02-09
Post by nmcc on Toggling Visualizations using HMI Physical Buttons
CODESYS Forge
talk
(Post)
Here is a screenshot. I really do not know how to format the variable exchange you are talking about.
Last updated: 2024-02-13
Post by nmcc on Toggling Visualizations using HMI Physical Buttons
CODESYS Forge
talk
(Post)
Here is a screenshot. I really do not know how to format the variable exchange you are talking about.
Last updated: 2024-02-13
Post by bouadel on Trend recording build error - the variable "arrTraceMgrVariablesImpl" is too large
CODESYS Forge
talk
(Post)
Hello do you find a solution ? I have the same Kind regards Adel
Last updated: 2024-04-09
Post by enricoghisla on Functional block
CODESYS Forge
talk
(Post)
How can i access to the variable in the FB from outside without put them in the in/out?
Last updated: 2024-04-16
Post by enricoghisla on Functional block
CODESYS Forge
talk
(Post)
How can i access to the variable in the FB from outside without put them in the in/out?
Last updated: 2024-04-16
Post by automa on How to write variable by name
CODESYS Forge
talk
(Post)
It has been a few years since this topic. Any solutions?
Last updated: 2024-06-04
Post by installwhat on How to access to variable value through symbolic string name
CODESYS Forge
talk
(Post)
https://help.codesys.com/api-content/2/codesys/3.5.12.0/en/_cds_operator_string_to/ Something like this?
Last updated: 2024-06-13
Post by installwhat on How to access to variable value through symbolic string name
CODESYS Forge
talk
(Post)
https://help.codesys.com/api-content/2/codesys/3.5.12.0/en/_cds_operator_string_to/ Something like this?
Last updated: 2024-06-13
Post by nano on Persistent variable storage
CODESYS Forge
talk
(Post)
use the persistence manager. with the persistence-manager, you're aböe to define how, when and where you store your data
Last updated: 2024-06-16
Post by dkugler on Visualisierung wechseln über SPS Variable Codesys 3.5
CODESYS Forge
talk
(Post)
Abgeschaltet? Wie wäre es auf codesys.com -> Menü Button oben rechts -> Support -> Online Hilfe: die Zwei Wörter "current visu" einzutippen? -.-
Last updated: 2024-08-26
Post by opineiro on How to manage variable types larger than 64 bits - Ethernet/IP
CODESYS Forge
talk
(Post)
Hi there, I have a Keyence bar code reader connected to my plc through Ethernet/IP. The Bar code is 20 digits long (like 30100790020493036016), the scanner reads it correctly (I can verify that through the keyence software) but when it sends it through ETH/IP, it doesn't fit into a 64 bit variable and it trunks the data.(I've tried ULINT and LWord without success). When I loaded the EDS file, the read variable was defined as a byte with 128 bits length, which is quite strange for me. (see attached picture) How do I manage this variable? Thanks!
Last updated: 2024-09-23
Post by ph0010421 on How to manage variable types larger than 64 bits - Ethernet/IP
CODESYS Forge
talk
(Post)
My guess is that's a STRING, not an INT type. And it's 128 bytes, not bits
Last updated: 2024-09-23
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
.