Search talk: Support client animations and overlay of native elements

 
<< < 1 .. 145 146 147 148 149 .. 222 > >> (Page 147 of 222)

Post by timvh on Device diagnosis ( EtherCAT IO card ) CODESYS Forge talk (Post)
You can get the state by just using the name of your node (same name as in device tree): VAR etcState: IoDrvEthercatDriverLib.ETC_SLAVE_STATE; END_VAR etcState := EJ1100.wState; Alternatively, you can iterate through the device tree to get the status of all (Ethercat) nodes. See here an example (no guarantee it works, just give as suggestion): PROGRAM P_IO_State VAR CONSTANT uiMAX_NR_OF_TERMINALS : UINT := 100; END_VAR VAR // general device diagnosis // can only be used when the Device - PLC Settings - Advanced settings - enable diagnosis for devices is enabled // this will add the DED library coupler: DED.INode; terminal: DED.INode; aDeviceState: ARRAY[0..uiMAX_NR_OF_TERMINALS - 1] OF DED.DEVICE_STATE; uiTerminalCount : UINT; uiIndex : UINT; // for each terminal check if it implements device diagnostics xQueryResult: BOOL; itfDevice : DED.IDevice2; xDiagAvailable: BOOL; eError: DED.ERROR; xEverythingOK: BOOL; END_VAR uiTerminalCount := 0; // start at the top of the device tree with the first EtherCAT coupler coupler := EtherCAT_Master.FirstChildNode; WHILE coupler <> 0 DO // for each coupler that is found start at the first terminal terminal := coupler.FirstChildNode; WHILE terminal <> 0 AND uiTerminalCount < uiMAX_NR_OF_TERMINALS - 1 DO // for each terminal that is found get the status through the device diagnosis interface xQueryResult := __QUERYINTERFACE(terminal, itfDevice); IF xQueryResult THEN aDeviceState[uiTerminalCount] := itfDevice.GetDeviceState(xDiagnosisInfoAvailable => xDiagAvailable, eError => eError); uiTerminalCount := uiTerminalCount + 1; END_IF terminal := terminal.NextSiblingNode; END_WHILE coupler := coupler.NextSiblingNode; END_WHILE uiIndex := 0; xEverythingOK := TRUE; WHILE uiIndex < uiTerminalCount DO IF aDeviceState[uiIndex] <> DED.DEVICE_STATE.RUNNING THEN xEverythingOK := FALSE; EXIT; END_IF uiIndex := uiIndex + 1; END_WHILE
Last updated: 2025-02-06

Post by mondinmr on Direct Pointers in IOMapping for EtherCAT with IoDrvEthercatLib.ETCSlave_Dia CODESYS Forge talk (Post)
I have found a very interesting solution using: IoConfigTaskMap IoConfigConnectorMap IoConfigChannelMap The first is the list of IO tasks. The second is the connector for each IO module in the IOMap. The third is the individual input or output on the IOMap. One of the properties of the connector is another pointer to a connector, which corresponds with the connector of the EtherCAT slave. Through this information, it is possible to understand to which EtherCAT slave an IO connectormap corresponds. I am attaching an FB that allows for the construction of an IO map and finding the pointer to the actual IOs in the IOMap based on the bitoffset. FUNCTION_BLOCK IOExplorer VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR inputChannels: COL.LinkedList; outputChannels: COL.LinkedList; ulintFactory: COL.UlintElementFactory; END_VAR METHOD inputAtBitOffsetOfConnector : POINTER TO BYTE VAR_INPUT conn: POINTER TO IoConfigConnectorMap; bitOffset: UDINT; END_VAR VAR it: COL.LinkedListIterator; itf: COL.IElement; elem: COL.iUlintElement; channelInfo: POINTER TO ADVChannelInfo; bitOffsetR: UDINT; END_VAR inputChannels.ElementIterator(it); WHILE it.HasNext() DO it.Next(itfElement => itf); __QUERYINTERFACE(itf, elem); {warning disable C0033} channelInfo := TO___UXINT(elem.UlintValue); {warning restire C0033} IF channelInfo^.connectorField = conn THEN IF bitOffsetR = bitOffset THEN inputAtBitOffsetOfConnector := channelInfo^.addr; RETURN; END_IF bitOffsetR := bitOffsetR + channelInfo^.size; ELSE bitOffsetR := 0; END_IF END_WHILE inputAtBitOffsetOfConnector := 0; END_METHOD METHOD outputAtBitOffsetOfConnector : POINTER TO BYTE VAR_INPUT conn: POINTER TO IoConfigConnectorMap; bitOffset: UDINT; END_VAR VAR it: COL.LinkedListIterator; itf: COL.IElement; elem: COL.iUlintElement; channelInfo: POINTER TO ADVChannelInfo; bitOffsetR: UDINT; END_VAR outputChannels.ElementIterator(it); WHILE it.HasNext() DO it.Next(itfElement => itf); __QUERYINTERFACE(itf, elem); {warning disable C0033} channelInfo := TO___UXINT(elem.UlintValue); {warning restire C0033} IF channelInfo^.connectorField = conn THEN IF bitOffsetR = bitOffset THEN outputAtBitOffsetOfConnector := channelInfo^.addr; RETURN; END_IF bitOffsetR := bitOffsetR + channelInfo^.size; ELSE bitOffsetR := 0; END_IF END_WHILE outputAtBitOffsetOfConnector := 0; END_METHOD METHOD scanIO VAR_INPUT END_VAR VAR numTasks: DINT := IoConfig_Globals.nIoConfigTaskMapCount; tType: WORD; ioTask: POINTER TO IoConfigTaskMap; numCon: WORD; connector: POINTER TO IoConfigConnectorMap; numCh: DWORD; channelInfo: POINTER TO ADVChannelInfo; iTsk: DINT; iCon: WORD; iCh: DWORD; i: DINT; _tmpConnList: COL.IList; elem: COL.IUlintElement; itf: COL.IElement; tmpCh: POINTER TO ADVChannelInfo; lastE: DINT; e: COL.COLLECTION_ERROR; e1: Error; END_VAR VAR_INST lF: COL.ListFactory; END_VAR IF outputChannels.CountElements() > 0 OR inputChannels.CountElements() > 0 THEN RETURN; END_IF _tmpConnList := lF.CreateDynamicList(16, 16); //Iterate through all IO tasks FOR iTsk := 0 TO numTasks - 1 DO ioTask := ADR(IoConfig_Globals.pIoConfigTaskMap[iTsk]); //Store the type of the task (Input or Output) tType := ioTask^.wType; numCon := ioTask^.wNumOfConnectorMap; //Iterate through all connectors of the task FOR iCon := 0 TO numCon - 1 DO connector := ADR(ioTask^.pConnectorMapList[iCon]); numCh := connector^.dwNumOfChannels; //Iterate through all channels of the connector FOR iCh := 0 TO numCh - 1 DO //Create a new channel info object and fill it with the address, connector and size of the channel //Connectors is address of field connector in this case like EtherCAT slave //Address is the address of the IOMap //Size is the size of channel data in bits in IOMap channelInfo := __NEW(ADVChannelInfo); channelInfo^.addr := connector^.pChannelMapList[iCh].pbyIecAddress; channelInfo^.connectorField := connector^.pConnector; channelInfo^.size := connector^.pChannelMapList[iCh].wSize; //We put the channel info a temporary ordered list //Order is based on the address of IOMap lastE := TO_DINT(_tmpConnList.CountElements()) - 1; FOR i := 0 TO lastE DO _tmpConnList.GetElementAt(udiPosition := TO_UDINT(i), itfElement => itf); __QUERYINTERFACE(itf, elem); {warning disable C0033} tmpCh := TO___UXINT(elem.UlintValue); {warning restire C0033} //If the address of the channel is smaller than the address of the channel in the list IF tmpCh^.addr > channelInfo^.addr THEN //Insert the channel in the list at the current position _tmpConnList.InsertElementAt(TO_UDINT(i), ulintFactory.Create(TO_ULINT(channelInfo))); //Clear the channel info pointer channelInfo := 0; //Exit the loop i := lastE + 1; END_IF END_FOR //If the channel info is not 0, it means that the channel was not inserted in the list IF channelInfo <> 0 THEN //Add the channel to the end of the list elem := ulintFactory.Create(TO_ULINT(channelInfo)); _tmpConnList.AddElement(elem); END_IF END_FOR //Iterate temporary list and add the channels to the input or output list lastE := TO_DINT(_tmpConnList.CountElements()) - 1; FOR i := 0 TO lastE DO _tmpConnList.GetElementAt(udiPosition := TO_UDINT(i), itfElement => itf); __QUERYINTERFACE(itf, elem); {warning disable C0033} tmpCh := TO___UXINT(elem.UlintValue); {warning restire C0033} //If type is input, add the channel to the input list IF tType = TaskMapTypes.TMT_INPUTS THEN e := inputChannels.AddElement(ulintFactory.Create(TO_ULINT(tmpCh))); //If type is output, add the channel to the output list ELSIF tType = TaskMapTypes.TMT_OUTPUTS THEN e := outputChannels.AddElement(ulintFactory.Create(TO_ULINT(tmpCh))); ELSE __DELETE(tmpCh); END_IF END_FOR //Clear the temporary list _tmpConnList.RemoveAllElements(); END_FOR END_FOR END_METHOD
Last updated: 2024-02-13

Post by deeps on web visu on IFM CODESYS Forge talk (Post)
I have an IFM cr1077 display. I would like to show B&R mapp view on IFM visualization. I used coedsys web browser elemnt for this. I could see IFM working fine in Internet web browser but IFM device shows white screen and freezes. I think there is problem with IFM showing the web browser. Is my understanding of the web visu right? am I doing any mistake here?
Last updated: 2023-08-18

Post by gerdkoch on Dynamic I/Os Mapping CODESYS Forge talk (Post)
Hi, I assume that you have a Pfc200 G2 or something and work with the original WAGO runtime. Then I would recommend the WagoSysDynamicIoMapping. Here in the example projects there is a PDF file for the library: https://downloadcenter.wago.com/learning-material/details/ll0w3pmdunzvem83g1 There is a global functional component in a GVL of the library. I think it's called DynKbusIoManager or something. The active terminals are registered there. Then there are filter Fb's for e.g. the first clamp with a specific article number. Everything is in the PDF.
Last updated: 2023-08-18

Post by kreisfilho on Stop raspberry from executing a plc program CODESYS Forge talk (Post)
Hi guys, Can someone inform where in a raspberry pi are stored the codesys programs? IΒ΄ve been training the use of a RPI as PLC, which works pretty well, however while both the RPI and PC (running codesys) remain connected to the same network. The question is: how to run the codesys program downloaded to the RPI as a stand alone device (disconnected from the PC)? Thanks! Kreis
Last updated: 2023-08-23

Post by ernesto881124 on ernesto881124 CODESYS Forge talk (Post)
Hello good morning everyone I would like to ask a question, is it possible to directly connect a device that only contains modbus RTU communication through an R-45 connector, directly to the PC? Or would you need an intermediate device to achieve communication? It would be of great help to me because I cannot achieve communication between the Codesys simulator plc and a Fuji Frenic mini VFD, please help me if anyone has had the same experience. Thank you so much
Last updated: 2023-09-13

Post by timvh on CANbus issue CODESYS Forge talk (Post)
On a PC with the Control Win, this is probably related to the fact that the CAN drivers are not loaded. Go to the folder where your Control Win Configuration file is: - E.g. C:\ProgramData\CODESYS\CODESYSControlWinV3x64\E1FA7ABE - Open the CODESYSControl.cfg - Remove the semi-colon in front of the CAN driver you want to use (section ComponentManager). - Set the component ID to the next number in the list (e.g. Component.8) - Save this file and restart the Control Win.
Last updated: 2023-09-14

Post by timvh on Specify Input Configuration "OnDialogClosed" Action to only react to certain Dialogs CODESYS Forge talk (Post)
What maybe helps is the Visu Dialog ST demo project: https://store.codesys.com/en/visu-dialog-st.html This has an application IECOpenDialog where dialogs are opened using the VU.FbOpenDialogExtended function blocks. The fbOpenConfigurationDialog call has a reference (interface) to the "close listener" FB of which it's method is automatically called when the dialog is closed. This way you can create specific function blocks for each dialog when it is closed and do what you want with the data that might have been changed.
Last updated: 2023-09-28

Post by sukrit on What licenses are required for runtime on raspberry pi cm4 CODESYS Forge talk (Post)
We have developed a project for 2 servo motors using raspberry pi computemodule 4 on ethercat master. we are using web visualization for display different screens. project is running well in demo. we want to implement it in production envoirment. being new still wondering which licences i need. Can We get this information in codesys devlopment software. code size is approx 5 mb, 1 instance of etharcat master and aproox 100 variables in visaualization.
Last updated: 2023-10-17

Post by eschwellinger on Persistence Manager Backup CODESYS Forge talk (Post)
you need at them moment a download once (for the configuration files generated including addresses) then stop the plc - exchange the persistence file ( without the config file) This will be improved to 3.5.18.6 and 3.5.20.0. (possible then to generate offline bootproject including full persistenmanager files) - this is if you have not 100% the same bootapplication on the devices. In case you copy the whole Application (PLCLogic) directory it should work out of the box - but only with 100% same bootprojects as mentioned above. By the CODESYS Automation Server would help solve this too.
Last updated: 2023-10-19

Post by song on How to convert a standard robot program into an excutive list when a robot runs? CODESYS Forge talk (Post)
Dear Sir, I'd like to learn and try to make robot based on Codesys, is there a FB block or other ways to convert a standard robot program into an excutive list? how codesys explain the robot command instructions on HMI, just like the SMC_NCDecoder used to convert CNC program into a list of SMC_GEOINFO object. Thanks very much! Peter Yan
Last updated: 2023-11-25

Post by alink on Visu - changing auto-logout time CODESYS Forge talk (Post)
Hello is there a chance to set with a visu input the auto-logout time? At the moment, it is a fix value set in visu-manager. But for individual configurating of passwort policies I create a visu-dialog to set policies and there for an option to set auto-logout-time. But till now, I haven't found a solution. Maybe someone has an idea? Thanks
Last updated: 2023-11-30

Post by kislov on Change modbus server parameters from program CODESYS Forge talk (Post)
Use in IEC-code: Modbus_Serial_Device.UpdateComPortSettings(...) https://content.helpme-codesys.com/en/libs/IoDrvModbusSerialSlave/Current/pou-ModbusSerialDeviceDiag/UpdateComPortSettings.html Take note: "Only possible if server is disabled (see xEnable Input)" So: Modbus_Serial_Device.xEnable := FALSE; Modbus_Serial_Device.UpdateComPortSettings(...) Modbus_Serial_Device.xEnable := TRUE; Please note that after PLC reboot the values from the GUI (from your screenshot) will be applied again. So you need to save values from HMI in RETAIN and restore them after start of application.
Last updated: 2024-07-17

Post by mrbartpawlowski on OMAC PackML library 1.0.04 CODESYS Forge talk (Post)
Hello all, Can someone point me to the OMAC PackML State Machine library documentation, I can't find any description of the block functionality ? I was looking into https://content.helpme-codesys.com/en/libs/index.html but there's no PackML there. I'm new to Codesys and don't know if I'm doing something wrong here ? In library tab in codesys whenever I want to see documentation I'm getting an error. Regards Bart
Last updated: 2024-08-15

Post by mrbartpawlowski on OMAC PackML library 1.0.04 CODESYS Forge talk (Post)
Hello all, Can someone point me to the OMAC PackML State Machine library documentation, I can't find any description of the block functionality ? I was looking into https://content.helpme-codesys.com/en/libs/index.html but there's no PackML there. I'm new to Codesys and don't know if I'm doing something wrong here ? In library tab in codesys whenever I want to see documentation I'm getting an error. Regards Bart
Last updated: 2024-08-15

Post by micik on ERR_OK not recognized CODESYS Forge talk (Post)
Hello, if I try to use ERR_Ok in my code to check whether the file is open correctly or not, I get an error "Identifier ERR_OK not recognized", I can use plain 0 (zero) instead. But in general, is this a proper way to check for success of file operation since the 4th parameter is a poinmter to RTS_IEC_RESULT, and normally I would expect this to be used somehow. _hFile := SysFileOpen(_sFileName, am:=SysFile.ACCESS_MODE.AM_WRITE, ADR(_result)); IF _result <> 0 THEN udDiag := 100; RETURN;
Last updated: 2024-08-17

Post by richiemuia on Static Analysis, Loading Files via script. CODESYS Forge talk (Post)
I've seen that you can use cmds like below to run SA from scripts. system.commands["staticanalysis", "run"].execute() But I would like to run different SA configuration files to create separate logs and cant find anywhere in the scripting engine if this is supported. This stems from if I turn on everything, SA stops reporting issues in the message log when the list gets over 600ish issues. Once we have done an initial clean up of code this wont be an issue, but I'm trying to get a baseline to track improvement.
Last updated: 2024-08-21

Post by richiemuia on Static Analysis, Loading Files via script. CODESYS Forge talk (Post)
I've seen that you can use cmds like below to run SA from scripts. system.commands["staticanalysis", "run"].execute() But I would like to run different SA configuration files to create separate logs and cant find anywhere in the scripting engine if this is supported. This stems from if I turn on everything, SA stops reporting issues in the message log when the list gets over 600ish issues. Once we have done an initial clean up of code this wont be an issue, but I'm trying to get a baseline to track improvement.
Last updated: 2024-08-21

Post by garmusd on Raspberry Pi 5 GPIO not working. CODESYS Forge talk (Post)
I paid money for the RPi runtime because the Product Description says that GPIO is supported. It is also written in the Versions that since 4.11 RPi5 is supported. And I use 4.13. Nowhere is it mentioned that GPIO is still not supported... It's a pity that the Codesys developers still can't find a way to fix it. Are there plans for when it will be fixed or are the developers too weak? Just wondering, is there anyone with a working GPIO? Can you share the details of your system?
Last updated: 2024-09-27

Post by jddaigle on TargetVisu controls are incorrectly positioned CODESYS Forge talk (Post)
Hello, I'm trying to run TargetVisu on my Linux IPC, and while it does work, the controls are misaligned compared to my WebVisu. Both visualizations are full-screen on a Debian 12 VM with a resolution of 1280x768. The WebVisu is running in Firefox. Are there any configuration I should adjust to ensure the controls align properly between the two? Any guidance or troubleshooting tips would be greatly appreciated! Thank you.
Last updated: 2024-11-03

Post by paterad on Edge gateway CODESYS Forge talk (Post)
Hello, I am struggling with Edge gateway to the automation server. It is not possible to establish the link. When I create the Edge in codesys and get it to Automation server, it is red, unable to connect. Scan fails. RPi 4B Runtime 4.13.0.0 Edge gateway 4.13.0.0 Codesys 3.5.2.40 Any idea what to chase? I have been using previous versions of edge gateway. Now I updated all to latest versions, failed. Frustrating.
Last updated: 2024-12-03

Post by amy123 on JSON Utilities ENUM to STRING CODESYS Forge talk (Post)
Hello, Is it possible to get the string returned from the ENUM JSONType? I read that with regular enumerations you can add '{attribute 'to_string'}' and access it. However, this is from the compiled library, so I can not add that attribute. When I try to use TO_STRING(JSONType) it returns the integer as a string. Ex. jsonType :=TO_STRING(pJSONData^._aJSONData[i].eType); gives '8' instead of NONE Thanks!
Last updated: 2024-12-09

Post by paulpotat on Can't find the safety manual in the documentation CODESYS Forge talk (Post)
Hello, I was browsing the "CODESYS Virtual Safe Control for Linux SL" documentation page, and it says the following : For more information about the development of safety-critical applications with CODESYS, see: * Safety Manual H1 – SafetyManual.pdf, which is stored in the directory ../<user>/CODESYS Virtual Safe Control Linux SL/Delivery/Manuals</user> What does this path refers to ? I can't find it in CODESYS installation directories. Best regards
Last updated: 2025-01-23

Post by timvh on Codesys Runtime Devie Password CODESYS Forge talk (Post)
This has been moved because of security reasons. But it depends on how you start CODESYS where the project files are located (at least for Control Win from SP20). 1) If you start it through the sys tray icon, you start it as a service and the files will be located in: C:\Windows*System32\config\systemprofile\AppData\Roaming\CODESYS... (or C:\Windows*SysWOW64**\config...) 2) If you start it as a user, e.g. with a shortcut to the runtime, you can find it in: C:\Users\<your user="" name="">\AppData\Roaming\CODESYS...</your>
Last updated: 2025-02-11

Post by dogulas on Removing a symbol from the IEC Symbols Editor grid CODESYS Forge talk (Post)
Right now when I make a change to one of the tags in my code, I have to completely remove the IEC Symbol Publishing object from the tree view and re-add it. Then I have to completely re-add every symbol to the grid view by dragging them over. This can be a lot. Surely, this is not the intended behavior. Can anyone tell me how this is supposed to work?
Last updated: 2025-02-11

<< < 1 .. 145 146 147 148 149 .. 222 > >> (Page 147 of 222)

Showing results of 5550

Sort by relevance or date