Activity for TimvH

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Are you using the Control Win SL (installed together with the development environment of CODESYS)? If yes, you might want to consider using the CODESYS RTE instead. This has real-time capabilities (running on separate core(s)). But to be able to use this, you have to install the CODESYS Ethernet driver for your network interface to be able to let the RTE access the network port also in realtime. See: https://store.codesys.com/en/codesys-control-rte-sl-bundle.html https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_windows_rts_v3.html...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Are you using the Control Win SL (installed together with the development environment of CODESYS)? If yes, you might want to consider using the CODESYS RTE instead. This has real-time capabilities (running on separate core(s)). But to be able to use this, you have to install the CODESYS Ethernet driver for your network interface to be able to let the RTE access the network port also in realtime. See: https://store.codesys.com/en/codesys-control-rte-sl-bundle.html https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_windows_rts_v3.html...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    This is almost always related to previously working with an additonal monitor. If you have placed CODESYS on that monitor, later start your laptop again and open CODESYS without that monitor, then Windows still places it in the previous position, but then it is not visible. So the solution by cehermanstad can be used to move it to the main screen to make it visible again. PS, another way to move it, is by pressing SHIFT and then right-click on the icon in the task bar, then select move. You can then...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    I'm not sure, but maybe you have to configure the 750-652 first with the WAGO-IO-CHECK software to set it in RS485 mode?

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You have selected the new Ladder editor. This only has these items in the toolbox.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    The IoT library contains a Web Socket library. Maybe this provides your required functionality. See https://store.codesys.com/en/codesys-iiot-libraries-sl.html

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    It is part of the IoT library. See: https://store.codesys.com/en/codesys-iiot-libraries-sl.html

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    if you just want to show the currently logged in user in the visualization, then just create a field with text %s and as text variable VisuElems.CurrentUserName

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Yes, it is possible to set breakpoints and use step into / step over (also in Ladder diagram). Yes, the PLC will actually stop, so be carefull with this. How a PLC works is that at the start of the execution of the Task, the Inputs are read, then the code is being executed and then the outputs are written. So if you set a breakpoint, you will not see your analog inputs changing, because the task cycle is interrupted and the inputs and outputs are not refreshed. For detailed information, see: htt...

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    It depends on your application which CPU speed and RAM size you need. If you think the Control Standard S license is sufficient then my guess is that your selected PC has no problem running your application. There are no more "hardware" based single licenses available anymore, only application based licenses. So this "Raspberry Pi" restriction for home automation is not applicable anymore. For more information see: https://store.codesys.com/en/howto_applicationbasedlicenses

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    The Epis controller should support the CodeMeter driver to be able to access the license containers on the CODESYS Key.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    To prevent ambiguous use of this enumeration value. Let's say another ENUM is available in your project or in another library which has an enumeration value AM_WRITE, then it is not clear which AM_WRITE you want to assign. By this qualified access to the SysFile.AM_WRITE, it is completely clear for the compiler.

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    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.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    I had a similar error "Invalid ERR Ack input". What you need to do is link an variable from the "non-safe" PLC to the Group IOs of the POU in the Safety app. * Add a POU to the SafetyApp (probably already done, otherwise you don't get this error) * Right click on this POU - select properties * Go to the Group IOs tab * Link a variable to the Err.Ackn. input I don't know about the Size of zero, I didn't get this error. Were you able to fix this?

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    I'm not sure what you are trying to do, but getting the CurrentUserGroupID like this will not work, because there could be multiple Visualization Clients and each can have a different user that is logged in. Also when you go online with CODESYS and open an Visualization, this is counted as a client. Probably this is the reason you see it changing. What you can to is "iterate" over all clients and then see which user is logged in on which visualization Client. For this you need to add the Visu Utils...

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    You can use the (open source) FTP client in Forge. This works on 64 bit systems. See: https://forge.codesys.com/prj/ftp-client/code/HEAD/tree/ As this is open, the idea is that when you use it and make improvements to the source code, that you also commit this in a branch so others can also benefit from it.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    copy paste?

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    I think you want to implement client side scripting? Maybe creating HTML5 objects is an option, because the JavaScript is executed on the client side. See html5

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    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...

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    I'm not really sure what you are trying to do, but maybe you are referring to using the CmpCharDevice library? When you "open" the connection to a device, you can pass flags. What helped me is to set the non-blocking flag. I'm not sure if this is what you are referring to, but maybe it helps: dFlags: DINT := CmpCharDevice.ACCESS_MODE.O_RDONLY + DINT#4000; // see details for flags: http://linux.die.net/man/2/open, + DINT#4000 is for non-blocking hDevice := CmpCharDevice.CDOpen(szFilename, dFlags,...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    https://en.wikipedia.org/wiki/Modbus

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Maybe there is a better way, but a long time ago I created a test application that worked like this: With a button I opened the dialog and I added a "Input configuration - OnDialogClosed" "Execute ST-Code" action to this same button which called the following Function when the dialog was closed: F_OnFileDialogClosed(pClientData); Below this Function which handled the result: // This function is called from the visualization when the dialog is closed. FUNCTION F_OnFileDialogClosed : BOOL VAR_INPUT...

  • TimvH TimvH modified a comment on discussion Engineering πŸ‡¬πŸ‡§

    In the example project, you can see that a CAN.CANAreaReceiver is used which has an VAR_IN_OUT reference to a RECEIVER_AREA structure. This structure has a dwIdStart and dwIdEnd to filter a range of ID's and process them through the referenced msgProcessor.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    In the example project, you can see that a CAN.CANAreaReceiver is used which has an VAR_IN_OUT reference to a RECEIVER_AREA structure. This structure has a dwIdStart and dwIdEnd to filter a range of ID's and process them throught the reference msgProcessor.

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    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.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    For a demo application related to date/time, see: https://forge.codesys.com/prj/codesys-example/date-and-time/home/Home/

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You will need a USB to RS485 converter to connect the PC to the Modbus RTU Slave Device. In Windows this converter will be recognized as Serial COM poort (e.g. COM2, or COM3, see the windows device manager to find this out). Select this port in your CODESYS application. On the PC you need to use the CODESYS Control Win (SoftPLC) to run your application. It will not work in simulation mode, because then the Modbus Communication will not be activated.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Maybe select the local gateway instead of the gateway on the remote device?

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    You need to start the application, see the "start" option at the top left (next to close simulation).

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Maybe the following helps: https://forge.codesys.com/prj/codesys-example/modbus/home/Home/

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Look all the way at the end of the link below. This provides a way to use arrays with various lengths: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_datatype_array.html

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You are trying to make something very simple really complex, but my best guess is that the order of execution is: - initialize FB (x becomes 1) - Load persistent (x is 1) - start application (x remains 1) PS, It could also be that your "persistent" variables are not stored correctly and that, at startup, the value is always 0. Did you add this variable to the Persistent Variable list? And did you make sure that this works correctly on the device you are using? So maybe the execution order is: - load...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    It is a naming convention. Nothing else. Most often you see this being used for the local (private) variables of a Function Block. It comes mainly from C++ / C# to not mix them up with (public) properties. Probably best is to search for C++ naming conventions to get more information.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    go to the library manager of your project click on Add Library (top left corner) type in CAA Memory - you will see it in the list. If not, and you don't have the latest version, maybe you have to select Advanced first. then double click it to add it to the library manager of your project. Then you can use the functions from it in your project.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Maybe you should not use SIZEOF, but LEN. Because SIZEOF means you will get the memory size of your string variable (e.g. maximum 80 characters), but LEN will give the actual length of the string.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Maybe you could use the "CAA Memory" library for this. This library contains a function MemMove. Here you can specify the pointer to memory of your source and target and set the number of bytes to "move". To get the pointer to your array of 18 Words, use ADR(nameOfYourArray) to get the pointer to it's memory location.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    See https://faq.codesys.com/pages/viewpage.action?pageId=1310825

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    In recent CODESYS versions you can go to the device settings (similar location where you scan the network for your communication settings with your controller). Here is an additional entry (tab) called "Licensed software metrics". This will give you all information you need. See also: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_f_obj_device.html and https://store.codesys.com/en/howto_applicationbasedlicenses

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Most likely you use a Runtime of SP19 or higher, because starting from this version the default setting is that only access to files in the PLC folder are allowed. This is for security reasons. You can allow the runtime to access files outside of this folder, but you have to modify the CODESYSControl_User.cfg. For the exact file name and it's location, see: https://faq.codesys.com/display/CDSFAQ/Location+of+the+configuration+file Or ask the vendor of your PLC. One option is to set the IecFilePath,...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    I'm not sure, but I guess it has the attribute 'no_assign'. Probably it is better to use a reference: VAR_INPUT slave : REFERENCE TO IoDrvModbus.ModbusSlaveComPort; END_VAR

  • TimvH TimvH committed [r3]

    Added projectarchive 3.5 SP18 P3

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    The example project, which is included in the package, shows an example with CFC program (CFC_PRG). This calls the FB MsgProcessor_EchoCFC. This FB calls a method ProcessMessage, which calls the FB CAN.CANSender. This has a reference to the interface of the CANDriver and a reference to the Message you want to send. So you could use this FB to send any CAN message. The Message is a struct: TYPE MESSAGE : STRUCT udiCanID : UDINT; (* CAN-ID (Communication Object Identifier) is the bitId of a CAN-frame...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Hi Ben, you are right, I answered too quickly. You need to send a message with own defined COB ID. Probably the CAN Level2 communication is your best option. There is an example project available which contains a library that encapsulates this communication method to access it in an OOP way. See the store: https://store.codesys.com/en/canbus-example.html In the package is a library and an example project. Hopefully this helps.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    CSV is short for comma separated value. So add comma's between your values. Probably you want to open it in Excel, then it depends on your country settings what your default delimiter is. In some cases a semi-colon could be better/easier than a comma, but this has nothing to do with CODESYS.

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    I think you just installed the library in the repository and then used it, but the idea is that you can open the library in CODESYS and edit it. And yes, you can then change the layout, use other characters, so you then make your own dialog. You can then change the library information (menu: Project - Project Information - Summary). Enter you Company name, Title of the library and Version, then install it in the library repository and use it.

  • TimvH TimvH modified a comment on discussion Visualization πŸ‡¬πŸ‡§

    I'm not sure you want to go in this direction, because the example below contains code which is marked as obsolete, but the library mentions that if no other option is possible, then it could be an escape... so be warned 😬 Add the following code to your "HandleClient" method xChangePage : BOOL; itfVisuClientRawData : VU.IVisualizationClientRaw; xQueryOK := __QUERYINTERFACE(itfClient, itfVisuClientRawData); IF xQueryOK AND xChangePage THEN VisuElems.g_VisuManager.SetMainVisu(pClientData := itfVisuClientRawData.ClientDataPointer,...

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    I'm not sure you want to go in this direction, because the example below contains code which is marked as obsolete, but the library mentions that if no other option is possible, then it could be an escape... so be warned 😬 Add the following code in you "HandleClient" method xChangePage : BOOL; itfVisuClientRawData : VU.IVisualizationClientRaw; xQueryOK := __QUERYINTERFACE(itfClient, itfVisuClientRawData); IF xQueryOK AND xChangePage THEN VisuElems.g_VisuManager.SetMainVisu(pClientData := itfVisuClientRawData.ClientDataPointer,...

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Maybe this helps: https://forge.codesys.com/prj/codesys-example/visudialogs/home/Home/ ?

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    https://forge.codesys.com/forge/talk/Engineering/thread/ea23226bbe/

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Unused inputs/outputs (not used anywhere in your application) are not updated by default by CODESYS. See: https://faq.codesys.com/pages/viewpage.action?pageId=106889249 for more information. PS, putting the PLC in RUN could also help :-).

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    It is not clear what you want to do, because a DWORD contains 32 bits. If you just want to get a certain bit out of the DWORD, you could use e.g.: xBool := dwDword.0; If this is not what you want, then please specify which 4 bits you would like to have as output of the function.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Ask the company which sold you the PLC.

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    Probably you have to delete the cmact_license folder first and then reboot. See the FAQ about this (is for RaspPi, but similar for PFC): https://faq.codesys.com/pages/viewpage.action?pageId=1310825

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    I'm not sure if I understand it correctly, but on an Android device you could install the CODESYS Web View. But your controller should then support the WebVisu to show the visualization in this "web app". See: https://play.google.com/store/apps/details?id=com.codesys.webview&hl=nl&gl=US

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You can read the status of the license from your application through the CmpCodeMeter library. See https://forge.codesys.com/forge/talk/Runtime/thread/1c1b00cfc7/ So the code could be something like (change the numbers according to the licenses you are searching for): VAR // add CmpCodeMeter library xCheckLicense: BOOL; xFound: BOOL; Handle: CmpCodeMeter.RTS_IEC_HANDLE; Result: CmpCodeMeter.RTS_IEC_RESULT; END_VAR // check for valid Raspberry Pi license IF xCheckLicense THEN xCheckLicense := FALSE;...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    As I understood it, the benefit of using the functions from the VisuUtils library are: - not required to call these functions from the Visu Task - end-user friendly call of function blocks (follows the common behaviour model) - future proof (backward compatible) - ... So you are motivated to use the function blocks from the VisuUtils library. Off course these are function blocks and you have to call them over multiple cycles until xDone is TRUE, because internally it has to wait until the visualization...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    I found out it only happens when you do this in a POU which is added to the POU Pool. If you add this POU to the application tree, this doesn't happen. It will be fixed with compiler version 3.5 SP20.

  • TimvH TimvH modified a comment on discussion Engineering πŸ‡¬πŸ‡§

    As the Wago PLC has a Linux OS, I think this might be possible by "mounting a shared folder". This is not CODESYS related, but more a question of giving a Linux device access to this shared folder on the server. I have done something similar with another PLC with the following commands (I really don't know if this will work on the Wago PLC, but you could try): mount -t cifs -o username=<name>,password=<password>,domain=<domain_name> //<ip_address>/<shared_folder> /home/admin/networkshare So first...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    As the Wago PLC has a Linux OS, I think this might be possible by "mounting a shared folder". This is not CODESYS related, but more a question of giving a Linux device access to this shared folder on the server. I have done something similar with another PLC with the following commands (I really don't know if this will work on the Wago PLC, but you could try): mount -t cifs -o username=<name>,password=<password>,domain=<domain_name> //<ip_address>/<shared_folder> /home/admin/networkshare</shared_folder></ip_address></domain_name></password></name>...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    When you create your I/O configuration with CANopen Manager, automatically the CAA CiA405 library is added. This includes an FB SDO_WRITE4. You can use this to send the LSS messages.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    If they don't appear automatically when you use the input assistant to call the FB, then you can still add them manually. Maybe a bug in SP18 P2. In SP18 P3 I don't see this.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    In the main visualization place 1 frame. In this frame add 3 visualizations (2x green lamp, 1x red lamp). Link the FB instances as reference to the visualizations in the frame. Then there are multiple options to switch between which visualization to show in the frame. A simple one could be just to use the "Switch frame variable" and in your IF statement set the correct value for this variable.

  • TimvH TimvH committed [r2]

    First commit

  • TimvH TimvH committed [r1]

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    First you need to know which VFD you want to use, then check how you want to control it (direct I/O or through bus like Modbus, Profinet, EtherCAT, ...). Then configure this in your CODESYS application and connect the Controller to your VFD.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    1620 * 10 - 1 = 16199 (not 16119)

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    This is like creating two variables with the same name, so that doesn't work. A possible solution could be: - Double click on your device (where you also set the communication) - Go to PLC settings - At the Additional Settings - Enable symbolic access for IOs Now if your I/O module is named _750_1405, you can map the inputs directly on a Modbus output register: Application._750_1405.Digital_Inputs_0_15

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    https://forge.codesys.com/prj/codesys-example/date-and-time/home/Home/

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    If I understand it correctly you want to know what data the RFID reader will send to the PLC. For this you need to contact the company which sells the RFID reader. PS, maybe better to use the English language on an English forum.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    It is not the best answer, but maybe an alternative is to use the CODESYS Automation Server. You don't need any Python knowledge and anybody (without and coding knowledge) can schedule when a certain version of an application can be loaded on the various machines.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    2172731138 = hex 81 81 3F 02 hex 02 = dec 2 hex 3F = dec 63 hex 81 = dec 129 So this seems okay to me.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You could also create a DUT of the Type Union. In the Union add an array of 4 bytes and a UDINT. Then create a variable of this type. Write to the UDINT of this union variable and read the array of bytes. See https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_datatype_union.html

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    The data which is received is written in the STRING (memory). A string needs a 0 terminating byte to see the end of the string. In your case hello is just written to the first 5 characters of the string. The rest is not changed, it doesn't write a 0 in the 6th byte of the string (as it shouldn't). So what you could do is write some additional code to check the size of the message your received and then in the next byte write 0 in the string. You could see the string as an array of bytes. So you could...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    To prevent all these difficulties with setting up VPN connections, the alternative is to use the CODESYS Automation Server and manage your PLC's (and applications) there. Below the steps you need to take. 1) Create an account (subscription) for the CODESYS Automation Server in the Store: https://store.codesys.com/en/codesys-automation-server.html. This is free for 2 PLC's. 2) Install the Edge Gateway on Computer 2: https://store.codesys.com/en/codesys-edge-gateway-for-windows.html. 3) You need to...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You should use the TextListUtils library for this which already has a GetText function. See https://faq.codesys.com/display/CDSFAQ/Access+to+Text+Lists+from+the+IEC+Code The problem you have with this (old) code is probably because you don't call it from the VISU_TASK. With the TestListUtils library function this is not necessary.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    As Modbus doesn't support REALs (32 bit), you need to send it as 2 WORDs (2x 16 bit). A REAL is internally represented as IEEE 754 value and this determines which bits are set when the value should be e.g. 0.05. See https://en.wikipedia.org/wiki/IEEE_754 and see https://baseconvert.com/ieee-754-floating-point to check which bits are set for the value 0.05. So the Hex value of 0.05 is 3D4CCCCD. So the first WORD is 3D4C and the second CCCD. In decimal this is 15692 and 52429. This is what you need...

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Probably you are in a network where another DNS server is available and should be used. Maybe you can connect your laptop to the same network and set your IP setting to automatically get a DNS server IP address. Then check what this IP address is. You could find this out by e.g. opening a CMD box and type: ipconfig /all. Then see which IP address your laptop got and use this as IP address for the DNS server in your application.

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Yes it depends... mainly on the processing power of the controller, because for each client the CODESYS runtime needs to handle the connection. What you can do is monitor the CPU load (see https://forge.codesys.com/forge/talk/Runtime/thread/51fe121066/), then open in e.g. Chrome multiple tabs which show the WebVisu. Then check how it increases the load of your CPU.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You need to have access to a DNS server which can provide this for you. There seems to be a function block for this in Machine Expert: https://product-help.schneider-electric.com/Machine%20Expert/V1.1/en/TcpUdpCo/TcpUdpCo/Function_Blocks/Function_Blocks-61.htm Google also has a DNS server which you could use. The IP address is 8.8.8.8. The default port is 53, but the documentation of the FB describes that you do not have to enter this.

  • TimvH TimvH modified a comment on discussion Visualization πŸ‡¬πŸ‡§

    Message should be something like: text <LATCH1> more text. See: https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_extending_alarm_messages_with_latch_variables.html

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Message should be something like: text <latch1> more text.</latch1> See: https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_extending_alarm_messages_with_latch_variables.html

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    for each datasource, "implicit" variables are available. See below how you could use this. PS, this information is from several years ago. Maybe better solutions are available, but this should work: //Variable declaration VAR state: Datasources.DataSourceMonitoringState; error: Datasources.DataSourceError; END_VAR // get datasource communication state (e.g. of DataSource1) state := g_Datasources.Datasource1State; error := g_Datasources.Datasource1Error;

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You can start CODESYS and automatically run a script through the command line. See: https://content.helpme-codesys.com/en/CODESYS%20Scripting/_cds_starting_script_via_command_line.html Here you can find some examples, which don't answer your question, but hopefully give you more information to get started: https://content.helpme-codesys.com/en/CODESYS%20Scripting/_cds_access_cds_func_in_python_scripts.html

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    Maybe this helps: https://store.codesys.com/en/alarm-manager.html

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    When powering on the laptop, you should use the Windows functionality to automatically login with a user. Then you should start the HMI when the user is logged in. This is all Windows related functionality. Probably it is best to use a UPS to correctly shut down the laptop when the power of the machine is turned off.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    I had something similar which seems to be related to OneDrive, because this can change the default file location. What you can do is go to the properties of the desktop folder (right click - properties). Then select location. Here you can restore it to default, then I could select all folders on my laptop again.

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Probably you have to write some code to convert it to a string, find the dot, then remove everything behind the dot if the next character is a zero. If you create a function for this, you can reuse this code for all REAL variables which you want to show like this.

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    Maybe good to follow the steps as described in the example. See https://forge.codesys.com/prj/codesys-example/reduexample/home/Home/ When you download the zip file, you can find a video describing each step in detail.

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    the first steps are done correctly: - Set the SysSocket properties in the .cfg file - Enable the option in the Ethernet adapter to adjust the IP address but the code should be handled differently to change the IP adres of the PLC. 1) add the following instance to your variable declaration: Reconfigure : DED.Reconfigure; 2) In your application you should now write some code to: - first disable the ethernet adapter - then change the IP adres - then enable the ethernet adapter again So for example Set...

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Maybe better to use the "Visu Utils" library. Is much more user friendly.

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Maybe better to use the "Visu Utils" library. Is much more user friendly.

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    You can use the "Visu Utils" library to iterate over all clients and through the interface of each client get the current visu.

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You should open COM1, not 0. Additionally, this might help: https://forge.codesys.com/forge/talk/Engineering/thread/33c7d2badd/

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    It is not clear what you are trying to do. Is it for another device you want to connect which is not a Modbus device? Then the advise would be: do not do that. It could give conflicts with the standard Modbus communication. But if it is a Modbus device, then why not use the standard Modbus device configuration?

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    Check the CODESYSControl.cfg. Here you can specify where the log output is written to, so you can also let it write to file. Please regard the numbering, because it should be kept in order (0, 1, 2, etc). Below a part which is copied from a .cfg file of the Control Win Runtime. This probably will look much the same on your controller. [CmpLog] Logger.0.Name=PlcLog ;Logger.0.Filter=0xFFFFFFFF Logger.0.Enable=1 Logger.0.MaxEntries=100000 Logger.0.MaxFileSize=500000 Logger.0.MaxFiles=3 Logger.0.Backend.0.ClassId=0x0000010B...

  • TimvH TimvH posted a comment on discussion Runtime πŸ‡¬πŸ‡§

    Maybe the license is not activated? Then it will stop after 2 hours. I would suggest to check this first. You can check this in the log file (double click on the device and go to the log).

  • TimvH TimvH posted a comment on discussion Engineering πŸ‡¬πŸ‡§

    You opened it probably with SP18. Then I would suggest to close CODESYS, start the CODESYS Installer, update the Visualization add-on to 4.2.0.0 (or later). Then open the project again in SP18 and set the Visualization Profile to this version (Project - Project settings - Visualization profile).

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Since SP17, you can start the CODESYS installer through the Windows menu. There you can find a list of add-ons. So you will have 3.5 SP17 installed as "essential version". In the CODESYS installer you can find the add-ons (for each installation) with its versions which you have installed. There you have the option to update the "Visualization" to a new version (latest currently is 4.2.0.0).

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    There is a fix in V3.5 SP16 Patch 9 (and the Visualization add-on 4.1.0.0) related to old Web browsers. I would suggest to upgrade to a newer CODESYS version and try again.

  • TimvH TimvH posted a comment on discussion Visualization πŸ‡¬πŸ‡§

    Do you mean the element list? Just open the visualization and go to the top to open it (small triangle), or in the menu: Visualization - Visual element List.

<< < 1 2 >