Post by gseidel on MC_Phasing state explenation
CODESYS Forge
talk
(Post)
Hi kenth1973, MC_Phasing has been improved in recent versions. I would recommend to install the latest version of SoftMotion (4.20.1.0) and test whether the problem still exists, and if so, what the error identifier is. (Also check the PLC log in this case, it might contain additional information.) Setting the internal state of the FB is not recommended, it could lead to malfunction of the FB and unintended movements of the drive. Best regards, Georg
Last updated: 2025-11-28
Automation Server π¬π§
CODESYS Forge
talk
(Discussion)
The Industry 4.0 administration platform for users and operators of CODESYS compatible controllers
Last updated: 2025-12-02
Post by jari-koivuluoma on Problem trying Net Base Services 3.5.15.0 TCP connection
CODESYS Forge
talk
(Post)
I have a need to send messages between 2 PLCs and I cant use network variables (because of size limit) so I tried writing this simple test program. This seems to work fine. I can send messages back and forth when a first "Start server" and then "Connect client". See the attached image. However, if I disconnect the client by setting ClientConnect to false and try to re-connect then the TCP_Client just gives me TIMEOUT error. When I stop and start the server again, then Im able to reconnect. How is this supposed to work? Why reconnecting wont work. There is not other way of disconnecting the client than setting xEnable of the TCP_Client to false. This is just a testing program and I will try it on 2 seperate devices once this works. PROGRAM PLC_PRG VAR CONSTANT mySize : UDINT := 255; END_VAR VAR Server: NBS.TCP_Server; ServerIpStr: STRING := '127.0.0.1'; ServerIP: NBS.IP_ADDR; ServerPort: UINT := 50000; ServerConnection: NBS.TCP_Connection; Client: NBS.TCP_Client; ServerRead: NBS.TCP_Read; ServerWrite: NBS.TCP_Write; ServerSend: STRING(mySize); ServerReceive: STRING(mySize); ServerConnect: BOOL; bServerSend: BOOL; IP: NBS.INADDR; ConnectedClientIP: STRING; ClientPort: UINT := 50000; ClientIpStr: STRING := '192.168.1.49'; ClientIP: NBS.IP_ADDR; ClientRead: NBS.TCP_Read; ClientWrite: NBS.TCP_Write; ClientSend: STRING(mySize); ClientReceive: STRING(mySize); ClientConnect: BOOL; bClientSend: BOOL; Error: BOOL; Message: BOOL; END_VAR // Server ServerIP.sAddr := ServerIpStr; Server( ipAddr := ServerIP, uiPort := ServerPort ); ServerConnection( xEnable := Server.xEnable, hServer := Server.hServer, ); IP := ServerConnection.IPAddress; ConnectedClientIP := F_Concat7( BYTE_TO_STRING(IP.S_un_b.s_b1),'.', BYTE_TO_STRING(IP.S_un_b.s_b2),'.', BYTE_TO_STRING(IP.S_un_b.s_b3),'.', BYTE_TO_STRING(IP.S_un_b.s_b4)); ServerRead( xEnable := ServerConnection.xActive, hConnection := ServerConnection.hConnection, szSize := SIZEOF(ServerReceive), pData := ADR(ServerReceive) ); IF ServerRead.xReady AND ServerRead.szCount > 0 THEN Message := TRUE; END_IF IF ServerRead.eError > 0 THEN Error := TRUE; END_IF ServerWrite( xExecute := ServerConnection.xActive AND bServerSend, hConnection := ServerConnection.hConnection, szSize := LEN(ServerSend)+1, pData := ADR(ServerSend) ); IF ServerWrite.xDone THEN bServerSend := FALSE; END_IF IF ServerWrite.eError > 0 THEN Error := TRUE; END_IF // Client ClientIP.sAddr := ClientIpStr; Client( xEnable := ClientConnect, ipAddr := ClientIP, uiPort := ServerPort, udiTimeOut := 10000000 ); ClientRead( xEnable := Client.xActive, hConnection := Client.hConnection, szSize := SIZEOF(ClientReceive), pData := ADR(ClientReceive) ); IF ClientRead.xReady AND ClientRead.szCount > 0 THEN Message := TRUE; END_IF IF ClientRead.eError > 0 THEN Error := TRUE; END_IF ClientWrite( xExecute := Client.xActive AND bClientSend, hConnection := Client.hConnection, szSize := LEN(ClientSend)+1, pData := ADR(ClientSend) ); IF ClientWrite.xDone THEN bClientSend := FALSE; END_IF IF ClientWrite.eError > 0 THEN Error := TRUE; END_IF
Last updated: 2024-10-03
Post by jzhvymetal77 on IecVarAccessLibrary.IBaseTreeNode methon
CODESYS Forge
talk
(Post)
I had this code working in a previous version of CoDeSys to read variables from a GVL that were added to the Symbol configuration. The problem now is that when I get the _IBaseTreeNode_Parent, it returns a valid interface, but none of the methods or properties work. If you monitor the _IBaseTreeNode in the watch window, it does show the correct child count. However, it fails at step 30, where the child count incorrectly returns zero. In the image, you can see that the watch window displays the correct value that the property should return. Attached is the full project code. FUNCTION_BLOCK Symbols_TO_STR VAR_INPUT i_sPath : STRING(255); i_diIndexChild : DINT; i_diIndexComponent : DINT; END_VAR VAR_OUTPUT q_diChildCount : DINT; q_diComponentCount : DINT; q_sName : STRING(255); q_sValue : STRING(255); q_sType : STRING(80); q_sErrorResult : STRING(80); END_VAR VAR uiStepCopy : UINT; uiStep : UINT; uiStepProcessCopy : UINT; uiStepProcess : UINT; _IBase : IecVarAccessLibrary.IBase; _pIIecVarAccess5 : POINTER TO IecVarAccessLibrary.IIecVarAccess5; _IIecVarAccess5 : IecVarAccessLibrary.IIecVarAccess5; _RTS_IEC_RESULT : IecVarAccessLibrary.RTS_IEC_RESULT; _udiResult : UDINT; _VariableInformationStruct : IecVarAccessLibrary.VariableInformationStruct; _IBaseTreeNode_Parent : IecVarAccessLibrary.IBaseTreeNode; _IBaseTreeNode_Child : IecVarAccessLibrary.IBaseTreeNode; _ITypeDesc_Child : IecVarAccessLibrary.ITypeDesc; _TypeDescAsUnion_Child : IecVarAccessLibrary.TypeDescAsUnion; _arIBaseTreeNode_Child : ARRAY[0..20] OF IecVarAccessLibrary.IBaseTreeNode; _TypeClass_Child : IecVarAccessLibrary.IBaseLibrary.TypeClass; _psSymbolName_Child : POINTER TO STRING; _sSymbolName_Child : STRING(255); _IBaseTreeNode_Component : REFERENCE TO IecVarAccessLibrary.IBaseTreeNode; _TypeClass_Component : IecVarAccessLibrary.IBaseLibrary.TypeClass; _ByteAddress_Component : __XWORD; _ByteOffset_Component : __XWORD; _sArrayIndexName_Component : STRING(20); _diArrayIndexCalc_Component : DINT; _diArrayIndexValue_Component: DINT; _psSymbolName_Component : POINTER TO STRING; _sSymbolName_Component : STRING(255); END_VAR uiStepCopy:=uiStep; uiStepProcessCopy:=uiStepProcess; CASE uiStep OF 10: // GET IBASE FROM CURRENT APP _IBase:= IecVarAccessLibrary.IecVarAccGetFirstInterface2(0); IF _IBase<>0 THEN uiStep:=20; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': IecVarAccGetFirstInterface2'); uiStep:=9000; END_IF 20: //QueryInterface IIecVarAccess5 from IBASE _pIIecVarAccess5 := _IBase.QueryInterface(IecVarAccessLibrary.ITFID_IIecVarAccess5, ADR(_RTS_IEC_RESULT)); IF _pIIecVarAccess5<>0 AND _RTS_IEC_RESULT=0 THEN _IIecVarAccess5 := _pIIecVarAccess5^; uiStep:=30; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': QueryInterface_IIecVarAccess5'); uiStep:=9000; END_IF 30: // Get IBaseTreeNode_Parent _IBaseTreeNode_Parent := _IIecVarAccess5.VarAccGetNode3(ADR(i_sPath), ADR(_VariableInformationStruct), ADR(_RTS_IEC_RESULT)); IF _IBaseTreeNode_Parent<>0 AND _RTS_IEC_RESULT=0 THEN q_diChildCount:=_IBaseTreeNode_Parent.ChildCount; uiStep:=40; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': IBaseTreeNode_Parent'); uiStep:=9000; END_IF 40: // Get IBaseTreeNod_Child IF(q_diChildCount-1>=i_diIndexChild AND i_diIndexChild >=0) THEN _IBaseTreeNode_Child := _IBaseTreeNode_Parent.GetChild(i_diIndexChild); IF _IBaseTreeNode_Child<>0 THEN uiStep:=50; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': IBaseTreeNode_Parent'); uiStep:=9000; END_IF ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': i_diIndexChild OutBounds'); uiStep:=9000; END_IF
Last updated: 2025-08-20
After un upgrade of "CODESYS Control for Raspberry Pi MC SL" from v4.7 to v4.9 SysFileOpen function stopped working
CODESYS Forge
talk
(Thread)
After un upgrade of "CODESYS Control for Raspberry Pi MC SL" from v4.7 to v4.9 SysFileOpen function stopped working
Last updated: 2023-08-22
Post by tvm on Web Client (HMI) Disconnects from Webvisu (Weidmuller u-OS)
CODESYS Forge
talk
(Post)
We have seen this kind of thing before. I have two questions: 1. What kind of HMI are you using? 2. When this happens, are you able to connect using https, on port 8089?
Last updated: 2023-09-06
Post by sivakov on Change the default ssh port
CODESYS Forge
talk
(Post)
Of course there is! =) just edit file/etc/ssh/sshd_config and restart ssh service. but you'll lose the possibility of runtime management through "update Linux", so there enother question - how to change default port in codesys it-self?
Last updated: 2023-10-11
How to use more 4 instances of CANopen/Profibus/Modbus with The application-based license CODESYS Control
CODESYS Forge
talk
(Thread)
How to use more 4 instances of CANopen/Profibus/Modbus with The application-based license CODESYS Control
Last updated: 2023-11-02
Post by vincentd on Datasource OPC UA Client error ID:7012
CODESYS Forge
talk
(Post)
I had some help from Codesys to debug this problem. It seems there was a problem within the target (a bug?). I only used for a proof of concept. Possibly it will work with a new version of the target
Last updated: 2023-11-21
Post by imdatatas on Axis variable indicating modulo of finite setting
CODESYS Forge
talk
(Post)
You could try with "iMovementType" member of AXIS_REF_SM3 struct. https://content.helpme-codesys.com/en/libs/SM3_Basic/Current/SM3_Basic/DriveInterface/AXIS_REF/AXIS_REF_SM3.html https://content.helpme-codesys.com/en/libs/SM3_Basic/Current/SM3_Basic/DataTypes/DriveInterface/SMC_AXIS_TYPE.html
Last updated: 2023-11-25
Post by bossjosh21 on Codesys Modbus RTU (Modbus_Slave_Com_Port Not Running)
CODESYS Forge
talk
(Post)
Can someone help me about my problem of my Modbus_Slave_Com_Port Not Running. I am using RevPiConnect 4 and I connected my actuator to the RS485 of my RevPI.
Last updated: 2023-12-05
Post by viktorr on ShareMemory library documentation
CODESYS Forge
talk
(Post)
Hello, I was wondering if there was further documentation on the SharedMemory library in CodeSys outside of the code example provided, or maybe a way to access the source code of the shared memory implementation. Thank you in advance for any advice. - Viktor
Last updated: 2024-07-03
Post by timvh on CanOpen write issue
CODESYS Forge
talk
(Post)
See: https://content.helpme-codesys.com/en/CODESYS%20Examples/_ex_canopen_canopen.html SDO example: SegmentedAndBlockWriteExample: Writing if an object of any length via SDO (segmented transfer or block transfer) by means of CiA405.SDO_WRITE_DATA This help page also contains a link to a demo project.
Last updated: 2024-07-16
Post by wagomikep on Number of Connections to Modbus TCP Slave
CODESYS Forge
talk
(Post)
Hello, Is there a maximum number of Masters that can connect to a Modbus Slave that is configured in the device tree? Is this limited by the CODESYS IDE, or the manufactures hardware and CPU load? Thank you,
Last updated: 2024-08-01
Post by wagomikep on Number of Connections to Modbus TCP Slave
CODESYS Forge
talk
(Post)
Hello, Is there a maximum number of Masters that can connect to a Modbus Slave that is configured in the device tree? Is this limited by the CODESYS IDE, or the manufactures hardware and CPU load? Thank you,
Last updated: 2024-08-01
Post by wagomikep on Number of Connections to Modbus TCP Slave
CODESYS Forge
talk
(Post)
Hello, Is there a maximum number of Masters that can connect to a Modbus Slave that is configured in the device tree? Is this limited by the CODESYS IDE, or the manufactures hardware and CPU load? Thank you,
Last updated: 2024-08-01
Post by wagomikep on Number of Connections to Modbus TCP Slave
CODESYS Forge
talk
(Post)
Hello, Is there a maximum number of Masters that can connect to a Modbus TCP Slave that is configured in the device tree? Is this limited by the CODESYS IDE, or the manufactures hardware and CPU load? Thank you,
Last updated: 2024-08-01
OPC-UA Server, Symbol Set: Raise an error: Object reference not set to an instance of an object.
CODESYS Forge
talk
(Thread)
OPC-UA Server, Symbol Set: Raise an error: Object reference not set to an instance of an object.
Last updated: 2024-08-08
Post by rmaas on Open specific Version of Codesys Control Win V3 x64
CODESYS Forge
talk
(Post)
Hi, When you open 'Codesys Installer' you can select which version of Control Win should be used. Select '...' at the desired version and select 'Set Control Service' Then start Codesys Control Win again...
Last updated: 2024-08-22
Post by dengsberg on Check Connection Status of the OPC-UA Server for Data Source Manager with OPC-UA Client
CODESYS Forge
talk
(Post)
Another question is how to test the quality of the individual variable?
Last updated: 2024-09-07
Post by docker on Webvisu client connection monitoring
CODESYS Forge
talk
(Post)
can you send me some code snippets of the declarations and code need i am unsure of how to set the pointer to the correct visu client. Thanks i appreciate your help.
Last updated: 2024-09-09
Post by bruceae on Ethernet/IP Scan
CODESYS Forge
talk
(Post)
Hello, I have a robot configured as a Generic Ethernet Module under Ethernet/IP Scanner. I can not see the change of state of the outputs coming from the robot on the codesys side in real-time. (The robot has it's own internal program that would changes the values of remote outputs 0-3 off and on). Also when I send data down to the inputs of the robot it doesn't transfer over as expected. As an example I'll send to the robot's input bit 0 a value of 1. It doesn't see that value change. However, when I write that input bit 0 back to a value of 0, the robot changes state and shows a value of 1. And if I change the state of a different bit, the other bits update properly, except for the bit that I changed. Any advice would be greatly appreciated, and if anything else is needed let me know.
Last updated: 2024-09-10
Post by hanpekel on Reading request counter value from modbus server in application
CODESYS Forge
talk
(Post)
Any way I can read the value of the 'request counter' (see screenshot) in my application. Amount of client connections is easily found using ModbusTCP_Slave_Device.uiClientConnections; But for request counter it does not seem to be that simple.
Last updated: 2024-10-16
Post by gatto on Profinet Exor connection drop
CODESYS Forge
talk
(Post)
did you try setup two eth ? on ethO you set ip to communicate with pc, example 192.168.0.1 on eth1 ip to communicate with weidmuler I/O, example 192.168.100.1 note : ip need the same of ip setup under system setting of hmi.
Last updated: 2024-10-16
Post by eschwellinger on Persistence Manager: Config File not found?
CODESYS Forge
talk
(Post)
..strange just switching of this device without graceful Linux OS shutdown? Reset orgin on the device tree and a new download of the application will bring it up and running again but sure then the persistent data are for sure lost.
Last updated: 2024-11-02
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.