Search talk: Data Type bool

 
<< < 1 .. 18 19 20 21 22 .. 37 > >> (Page 20 of 37)

Post by lostcontrol on Bool turning on in case stament in wrong state? CODESYS Forge talk (Post)
are you sure it is not used anywhere else.? does it have an address that could be duplicated perhaps? nothing external writing to it?
Last updated: 2023-12-16

Post by lostcontrol on Bool turning on in case stament in wrong state? CODESYS Forge talk (Post)
i would be looking at what the case variable is doing then.. sounds like there might be a logic race going on
Last updated: 2023-12-16

Post by alink on Visu - changing auto-logout time CODESYS Forge talk (Post)
decleration: fbVisuUserMgmt : VisuUserManagement.VUMUserGroup; bAutoLogOff : BOOL; tAutoLogOffTime : TIME; wstGroupName : WSTRING; code: fbVisuUserMgmt.wstGroupName := wstGroupName; fbVisuUserMgmt.xAutoLogout := bAutoLogOff; fbVisuUserMgmt.tAutoLogout := tAutoLogOffTime; Tried it that way. But how to execute? Doing fbVisuUserMgmt() dosn't work. Maybe silly question, but I'm a bit unexperienced
Last updated: 2024-02-07

Post by xcqt on Oop best practice CODESYS Forge talk (Post)
Hi all, I’m currently trying to improve my OOP structure in CODESYS and I’m looking for some input on how others approach this. I understand the basics like inheritance, interfaces, abstract FBs, methods, and properties, but I still struggle a bit with the overall architecture and what’s considered clean or scalable in bigger projects. As an example, I’m working on two different energy meter function blocks: FB_EnergyMeter_MQTT reads data from MQTT (strings) FB_EnergyMeter_Modbus reads data from Modbus (words) Both have their own Update() method and implement the same interface (something like IF_EnergyMeter). Later on, I’ll probably add more meter types, but they should all behave the same from the controller’s point of view. Now, there’s a FB_GridControl block that needs power data from these meters. I see two options here: Define the meter blocks inside FB_GridControl and call them directly (for example fbModbusMeter.UpdateModbus()). Keep the meter blocks outside and pass them into FB_GridControl as interface references, so the control block doesn’t know which specific type of meter it’s dealing with. Option 2 feels cleaner and more flexible to me, but I’m not entirely sure how to handle the data flow in that case. Should I pass the meter instance through an interface reference (REFERENCE TO IF_EnergyMeter)? Or is there a better way to link the external FBs to the control block? I’d like to hear how you structure this kind of setup or see an example from someone who has done something similar. EDIT: I think i need to do something like this fbModbusUpdateInput(wInput:= wWordValue); fbMqttUpdateInput(strInput:= strStringValue); IF bUseMqtt THEN Meter REF = fbMqttUpdateInput; ELSE Meter REF = fbModbusUpdateInput; END_IF fbControl.SetMeter(UsedMeter := Meter); Or am i thinking wrong? Thanks, Thomas
Last updated: 2025-10-16

Post by macros8 on Alarm Management - latched variable represented as Text list CODESYS Forge talk (Post)
Hi, I haven´t noticed you put the comment here. I thing it´s a bit different. What I want is to have detail errors of technology in data type e.g. INT. This variable I would latch to the corresponding error msg but I would like to get it convert to text from the text list and not keep it in INT form. Example. Main error Valve Error: SubErrors 1 - Both sensors 2 - Not retracted in time 3 - Not pulled out in time In HMI Main error + latch SubErrors => "Valve Error: Both sensors" The benefit is that text lists are part of translation and can be easily manipulated. I know I can create whole string msg in PLC but then, it lose advantage of Alarm management. Thanks. M.
Last updated: 2023-11-07

Post by jzhvymetal77 on VarAccGetAddress does not return the correct address for TYPE_ARRAY or TYPE_USERDEF. CODESYS Forge talk (Post)
VarAccGetAddress does not return the correct address for TYPE_ARRAY or TYPE_USERDEF. When you use VarAccGetNode, it returns a proper IBaseTreeNode if you provide the full path of an array element or structure element, and it even provides the correct data type. The problem is that with TYPE_ARRAY, it returns the start address of the array rather than the indexed element. With TYPE_USERDEF, it only returns the offset of the element instead of the actual address. This causes many issues with nested structures or arrays of structures, since it requires manually calculating the address based on the parent IBaseTreeNode. See attached image and example.
Last updated: 2025-08-28

Post by dnordenberg on BOOL variable in OPC UA and modbus simultaneously CODESYS Forge talk (Post)
How can I have an BOOL variable that is read/write in both modbus TCP server and from OPC UA at the same time? Variables with %MX.n %QX.n addressing which is used for BOOL/coils in modbus server is not allowed in OPC UA symbol list on Schneider M251 controllers. I have already asked on Schneiders forum but there are not a lot of codesys experts over there :( So OPC symbols can't have a address and the modbus TCP server needs a address. So how should I do it then? It seems like an impossible combination. Since I want read/write access from both ways I can't just simply make a second variable and assign it the value of another since it would be a one way assignment. I also tried using VAR_CONFIG which then makes the address syntax %Q or %M in my main variable list and that fools OPC UA Symbol Configuration to allow it and then I add the complete %MX.n address of it in the VAR_CONFIG list. This semi works, I can toggle the BOOL from modbus but the OPC UA symbol seems to be read only. It displays symbol status but nothing happens when I toogle it. I think I need another way to have the variables and symbols pointing to the same bits in memory... My plan B is to write a BOOL array compare FB that saves a history bit from previous cycle and if that does not match current status at next cycle for either the OPC symbol or the modbus variable then it copies the new status over to the other. Maybe ugly but it's like my last alternative. Kind regards David
Last updated: 2025-07-14

Post by abinvest579 on TCP Client CODESYS Forge talk (Post)
Hi All, I am using codesys based plc to read and control magna power DC supply over LXI protocol using SCPI command. To connect device required socket programming for that i am using Net base service library function block TCP_Client to establish connection over TCP/IP , TCP_Write to write SCPI commands and TCP_Read to read data from Magna power DC supply. I have attached screenshot for logic developed. I am able to connect and write commands to device but i not receiving any information from device. For writing Commands i also tried various end of line character like \n,<nl>, A, D, 10, 13, 0x0A, 0x0D but not received any status from device. For testing purpose i am using simple command '*IDN?' to read data. Also if tried to check on hercules software what data actually plc read, first it read correct data after that is read wrong data as see in screen shot. 'Hello World' was correct read and after that Codesys in replaced with 'Codesysorld' that is not correct way. Same issue also appeared for send data. Any one have face same issue how i can read data directly from device correctly and send data please suggest solution on this.</nl>
Last updated: 2024-07-01

Post by bruceae on Allen Bradley to Codesys conversion CODESYS Forge talk (Post)
Hello Everyone, I was hoping to get some assistance or general directions on the codesys equivalent of some Studio 5000 commands and data types; Data Types; SCK_TCP Commands; CPS
Last updated: 2025-08-08

CSV_Write_read: a sample program for the CODESYS Control WinV3 writing and reading 1000 records of CSV data in a file ... CODESYS Forge talk (Thread)
CSV_Write_read: a sample program for the CODESYS Control WinV3 writing and reading 1000 records of CSV data in a file ...
Last updated: 2023-08-08

Using CoDeSys on Raspberry Pi to poll ModbusTCP slave data, and uplink by using LoRaWAN ATIM ACW-XB CODESYS Forge talk (Thread)
Using CoDeSys on Raspberry Pi to poll ModbusTCP slave data, and uplink by using LoRaWAN ATIM ACW-XB
Last updated: 2019-01-08

How to transfer data from DINT to Union(16 Bools) which I need to use in Few FBs CODESYS Forge talk (Thread)
How to transfer data from DINT to Union(16 Bools) which I need to use in Few FBs
Last updated: 2023-12-14

Post by irshad01 on data area too large CODESYS Forge talk (Post)
Hi I have a problem regarding the codesys 2.3 software. How can I run into simulation mood if it say that data area too large when login. How do I resolve this issue
Last updated: 2024-01-17

Post by reinier-geers on Data to server CODESYS Forge talk (Post)
HI, i want to copy data to a server of a costumor. Whats the easy way ? contoller is V20p5 but also 2 are V9.2
Last updated: 2025-11-11

Post by manuknecht on Using SMC_MOVTYP.INITPOS without specifying the start position CODESYS Forge talk (Post)
I am using the object SMC_GEOINFO to generate a trajectory and move a system accordingly using the SMC_INTERPOLATOR function block similar to the sample project CNC10_DynamicPath.project. According to the documentation, the movement type INITPOS does not require a start position in the SMC_GEOINFO object, which is confirmed in the documentation of the SMC_GEOINFO object. When using the movement type INITPOS however, the motion will still start from the starting point defined in the SMC_GEOINFO object (0,0,0 if not specified otherwise). Does someone know how to resolve this or is there an example project that makes use of the INITPOS movement type without specifying the starting point? Thanks in advance!
Last updated: 2023-12-15

Post by athuum on Error 'Library not found' and 'Unkown type' CODESYS Forge talk (Post)
Hello, I am getting the following error and warning when trying to download a project into a PLC: - Library CmpTargetVisu has not been added to the Library manager, or no valid license could be found - Unkown type: 'CmpEventMgr.EventParam' As far as I can see, both are included, and licensed, in the library manager (see image). What could the problem be, and how would I resolve this?
Last updated: 2024-10-08

Post by apurv on Cannot pass array of constant size to a function as a reference CODESYS Forge talk (Post)
I have a Array of constant size defined like this Var Constant MAX_SIZE :UINT := 10; End_var VAR array : ARRAY[0..MAX_SIZE] OF INT; END_VAR Now I want to pass this array to a function by reference, Function fun : INT VAR_IN_OUT CONSTANT MAX_SIZE : UINT; END_VAR VAR_INPUT array : REFERENCE TO ARRAY[0..MAX_SIZE] OF INT; END_VAR but when I run this it gives strange Errors Error : Cannot Convert type 'ARRAY [0..MAX_SIZE] OF INT' to type 'ARRAY[0..MAX_SIZE] OF INT'
Last updated: 2024-01-07

Post by marlutec on [ERROR] The PLCopenXML import is not possible because Device not found. Type: 89, Id: 0000 0005, Version: 3.5.10.0 CODESYS Forge talk (Post)
Hello every one. Now i'm instaling a Weintek cMT2108x2(v2) with IR-ETN40R. When I start to import the archive content the code of I/O remote IR-ETN40R, ocurred this error. [ERROR] The PLCopenXML import is not possible because Device not found. Type: 89, Id: 0000 0005, Version: 3.5.10.0 Can someone help me? Marcos Gentil, from Brazil.
Last updated: 2024-02-15

Post by adam on Get/Set I/O Address Mapping of DeviceObjects in python Script CODESYS Forge talk (Post)
I want to cancel the automatic address allocation for all IO mappings. If I directly set the automatic_iec_address in class ScriptIoMapping to False, the address becomes None. So I reset manual_iec_address with itselfs value. It only work with the Input IOMapping . For output, it reports an error: "Invalid address: The channel type 'Output' requires address type '%Q'." I checked the description file ,both accessRight are total same. Does anyone know what causes this?
Last updated: 2025-11-14

Post by bjarne-pagaard on Communication between applications on same device/controller/runtime (Win RTE 3.5.20.20) CODESYS Forge talk (Post)
Hi, I would like to divide a project into multiple applications - as a minimum: one handling visualization and Alarm Manager, one handling I/O and plant control logic. But how to exchange variables between the applications? What have you done to get such a solution? In versions 3.5.19 and earlier, you can have Child applications, where the children can access a GVL in the Parent application. Children apps is no longer possible in 3.5.20 - but you can have 'sibling' apps - Several apps directly under PLC Logic, that is. But how do they best communicate? The Communication Manager / Data Sources Manager is sort of possible via OPC UA, but it seems like overkill and with some limitations - for example no ARRAY OF STRUCT possible this way. If you have separate devices in your project, you can exchange data via 'CODESYS ApplicationV3', but not other applications in the same device (see attachment Datasources.png). You can do it via 'Select the project type'->'Other Project' and select the same project file, but this leads to crashing the Development system when working with the variables afterwards. It would be great to hear your thoughts / experiences on this topic - Bjarne
Last updated: 2024-09-27

Post by duvanmoreno24 on Modbus writing on value change CODESYS Forge talk (Post)
Hi all, I want to know if someone has an idea of how I can write on value change in Modbus Codesys. I have a Wago PLC and I was used to work with E-cockpit which it was quite easy to do that without the necessity to trigger any value when there was a change in the variable ( I will put how easy is ). how you can see just changing the trigger in "On value Change" will do that channel writing automatically when It detects a change in those arrays. On the other hand, in Codesys if I enable the rising edge in Codesys It ask me to put a bool variable and if triggers is going to write that value. That is making me that I have to create a function or a logic to detect the change, the problem I have is that doing that is very tedious. I first approach I got it was to create a Function who returns a bool when the value change, but I tried to keep the old value but what is happening is that in Functions all the data is erased every cycle so I can not keep any Old value. so in the Main program the trigger is going to be TRUE all the time due, the old value is cero every cycle. The second approach I got it was using a function Block (POU_1) and it works but I dont want to instance that function for every Channel or value that I want to check if the value change, Basically if I have 200 values to write trhough modbus I have to create 200 instances of that function which I think it is not practicall at all. It should be a better way to implement this as e-Cockpit from Wago Does. However, I haven't been able to know how.
Last updated: 2024-03-26

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 timvh on Management of a PLC network from a remote station CODESYS Forge talk (Post)
Maybe the CODESYS HMI is a good solution. https://store.codesys.com/en/codesys-hmi-sl-bundle.html Run this on the remote main control station. In the HMI application you can add the data source manager and to this manager you can add Data sources. A data source has a reference to the PLC you want to connect to and can get access to the variables of the PLC application. You can then use these variables in the visualization of the HMI application.
Last updated: 2023-12-04

Post by lsislsis on Alarms Placeholder CODESYS Forge talk (Post)
Hello. When i put placeholders at "/etc/codesyscontrol/CODESYSControl.cfg" : [SysFile] FilePath.1=/etc/codesyscontrol/, 3S.dat IecFilePath.1=/proc/, cpuinfo IecFilePath.2=/proc/, iomem PlaceholderFilePath.1=/sys/devices/w1_bus_master1, $OneWire$ PlcLogicPrefix=1 PlaceholderFilePath.2=/data/persistence, $ac_persistence$ PlaceholderFilePath.2.Volatile=1 PlaceholderFilePath.2.View=1 PlaceholderFilePath.3=/data/alarms, $alarms$ PlaceholderFilePath.3.Volatile=1 PlaceholderFilePath.3.View=1 Where "Data" are my USB Flash. I take these attachment errors at run time. What i am doing wrong.
Last updated: 2024-10-15

Post by respl on IFM EXOR Network variable Error CODESYS Forge talk (Post)
We are connected IFM CR711S to Exor EX710. We are exchanging data using network variables. Both devices are configured on same project so no need to use file source. When tested application it works fine. But after 3 months same application not working. We are able to send data from CR711 to EX710 but data from Ex710 to CR711s works only for one scan when we cold reset CR 711S. Can somebody help to find out error.
Last updated: 2025-03-17

<< < 1 .. 18 19 20 21 22 .. 37 > >> (Page 20 of 37)

Showing results of 914

Sort by relevance or date