Post by pierre on difference between stub file and source file in scriptengine
CODESYS Forge
talk
(Post)
I included the stub files of scriptengine (codesys python api) in a directory scriptengine of a project. I tried to include librarymanager like that: from scriptengine import librarymanager visual studio code detected an error. It said librarmanager could not be found. Indeed in the stub file, this was library_manager. But if I change it in my code, the plugin doesn t work anymore. I found an easy solution to this problem. I ve just changed the copied stub files.(library_manager -> librarymanager) But I think it would be better if you update it yourself in the future.
Last updated: 2024-09-20
Post by thn-power on How to change OPC NodeId IdentifierType
CODESYS Forge
talk
(Post)
Hi Yet another OPC UA question. When setting up a OPC server using "Communcation manager" (Symbol set and information model) in Codesys the NodeId is always given as "opaque" type. At least when browsing using UAExpert. Other standard OPC objects use numeric (or string) identifier, but for some reason my variables seems to get opaque/binary type. See attached photo. How can I change this? I can't see that this is a parameter in the CodesysControl.cfg. Can this be specified in the information model nodeset? And is it possible to specify the exact numeric or string NodeId for each instance? And on a related topic, is there a way to export the OPC server nodeId's with variable name so that it can be imported in a OPC Client? The .xml files in the project folder does not seem to contain the NodeId.
Last updated: 2024-09-20
Post by davidbo on RPI can system operation like rm in a shell have an impact on a Task cycle time
CODESYS Forge
talk
(Post)
I have noticed that a rm file1.txt command on a shell has an impact on the cycle time for a TASK writing to file2.txt. Seen in the Monitor fane of the Task configuration Furthermore if a TASK makes a system call like rm, its cycle time increases of course but it seems to have an invisible impact on other TASKs too. I have a TASK for handling communication over the CANbus (SPI) where it stops sending "Heartbeats" for many seconds when another TASK does a system rm. Why is that not seen on the Monitor fane? Is even codesyscontrol paused when system calls are made? The CPU load is about 30-40%
Last updated: 2024-09-23
Post by timvh on Communication between applications on same device/controller/runtime (Win RTE 3.5.20.20)
CODESYS Forge
talk
(Post)
If you have a Windows system (RTE), then why not run the CODESYS HMI as separate controller. This could easily be moved to another PC if required. In the HMI you could also still use the Symbolic Var access as part of the Data Source Manager, although maybe OPC is the preferred way to make it more future proof. Or what about the Remote Target Visu. Then you can reduce the load of the main controller, while still only having to create one application including Visualization. This is now also supported for Linux systems. See: https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_target_visu_for_linux.html https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_execute_remote_target_visu.html
Last updated: 2024-09-28
Post by andrebrandt on FB string and naming
CODESYS Forge
talk
(Post)
Hi Tim. Not quite correct. What i'd like, is when you place the FB in prog, i choose a block NTC10k, and name this RT401. What i'm trying to do, is to get the name RT401 automaticly into the FB, so i can put this into the string i pass in a struct. So in var in POU, i saw this a place i could do this, RT401: NTC10k(Tag:='RT401'), but i can't get this to work. I shurly must have had something like this in FB: FUNCTION_BLOCK NTC10k String TAG But it's here where I'm stuck...
Last updated: 2024-09-30
Post by andrebrandt on FB string and naming
CODESYS Forge
talk
(Post)
Thank you so much. This worked. Waht im trying to do here is to automatically tag each sensors, valves and so on. There is a preatty nasty tag system i working on. "_320" is not alloved. I can have a tag "+4f=320.004-RT001V" In codesys I want to build the FB in folders. -4f | --320 | --001 This is the system structure. Inside here is all of the sensors and so on. But with Codesys, I cannot tag this like this. So what I'm trying to do now is to Make a folder for the building "4f" and one for the system "320", and a POU _001. Is there a way in init to get folder names?
Last updated: 2024-10-01
Post by ricola on Change default node Id name on Raspberry Pi
CODESYS Forge
talk
(Post)
EDIT : https://forge.codesys.com/forge/talk/Engineering/thread/cb5a492aa0/ hyplcmotion - 2022-12-16 Found out how! Needed to connect to PFC200 via Putty, and open CodesysControl.cfg with “sudo nano /etc/CODESYSControl.cfg”. Then adding following command to the end of file, and use the name you want, save/close CODESYSControl.cfg, and reboot your PLC. [CmpOPCUAProviderIecVarAccess] CustomNodeName= PFC200 Hi! , I'm digging up this issue cause we have still this long name within current versions on CodesysControl. Is it a lock for "demo" licences or can it be changed in some way ? This DeviceSet name is too way long with spaces inside, not easy to handle with string parsing... Cheers !
Last updated: 2024-10-10
Post by phoward131 on Alarm Table Filtering
CODESYS Forge
talk
(Post)
I am having trouble getting the alarm table filtering to work. I downloaded the alarm filter latch example project and ran it on the local Codesys Control Win and the filters worked fine. I am trying to replicate it in my project and everything seems to be set up the exact same way and every time I turn on the filter, it shows no alarms. I even started a blank project and just copied in elements from the example project so that it is exactly the same and when I attempt to filter, it again shows no alarms. Could there be some project settings I need to adjust to make this work? I have attached my project with elements copied from the example project and filtering is not working.
Last updated: 2024-10-28
Post by pistola on Case Function - Multiple Conditions, Is it possible?
CODESYS Forge
talk
(Post)
Looking at the help (https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_st_instruction_case.html). I don't think it is possible but I figured I'd ask. I'm looking at have a case that evaluates two variables, instead of having multiple If Else statements I was hoping I could just use a case. Example * Case Var1 & Var 2 of 10 & 10: Instruction Code 10 & 20: Instruction Code 20 & 20: Instruction Code End_Case Obviously I tried typing as noted above and Codesys threw an error. But I was wondering if there was a different way of programming to make something like this work? If not I'll just use a bunch of If Else Statements, Thanks.
Last updated: 2024-11-03
Post by jeroenaero on CodeSys Raspberry pi I2C driver not found
CODESYS Forge
talk
(Post)
Hello, We have a problem with CodeSys on a raspbery pi with an ADS1015 analog to I2C module. It can't find the I2C device on the i2c bus, it says No I2C Driver Found. When we use the RPI terminal we can find the I2C device and read it out. The i2c-1 bus is also accessible from codesys. The device address of the Analog to I2C module is 0x48. Can someone have a look what the problem is? i submitted the screenshots in the attachments. i also include the device description and library.
Last updated: 2024-11-07
Post by xabier on BUG CODESYS-NO WORK AUTOMATICALLY RESTARSLAVES
CODESYS Forge
talk
(Post)
I detect a Bug of Codesys....NO WORK AUTOMATICALLY RESTARSLAVES. I explain the secuence: I have click in my project the option AUTOMATICALLY RESTARSLAVES In the moment start my Ipc, the network ethercat start correctly I disconnect the wire of my first slave and later connect again the wire..(see the screen Bug Codesys restart slave1) NO work the restart automatic slaves...and is not possible execute of FB MC_REset beacuause appear this error (see the screen Bug Codesys restart slave2) The only way for resolver this problem is execute the FB SMC3ReinitDrive I replay the same with PLC BECKHOFF in Twincat3 and I havent this problem...In the moment connect the wire again in the slave the comunication of ehterCat restart and the slave comunication again with out problem
Last updated: 2024-11-07
Post by andrax on CodeSys Raspberry pi I2C driver not found
CODESYS Forge
talk
(Post)
Ok, with debug you suppress the errors, but that doesn't help you any further. You can find information about the missing drivers here https://forge.codesys.com/forge/talk/Runtime/thread/8981ce928a/ and here https://github.com/stefandreyer/I2C-Multiplex I'll have to have another look at which library you need. But you can easily find out. Create a completely empty project and insert the TCA9548. You don't need the board. Then look in the library and resolve all conflicts If you can compile the project without errors, delete the TCA9548 and insert the ADS1115. The driver should then also run. Small bonus: with the TCA9548 you can expand your network as you wish and use identical sensors multiple times
Last updated: 2024-11-08
Post by andrax on CodeSys Raspberry pi I2C driver not found
CODESYS Forge
talk
(Post)
Ok, here are the libraries I use. First of all, try to get the ADS1115 to run completely on its own. Without MUX or other sensors. As muxboard I use this one: https://www.digikey.de/de/products/detail/sparkfun-electronics/BOB-16784/12714950?utm_adgroup=&utm_source=google&utm_medium=cpc&utm_campaign=PMax:%20Smart%20Shopping_Product_Zombie%20SKUs&utm_term=&productid=12714950&utm_content=&utm_id=go_cmp-18521752285_adg-_ad-__dev-c_ext-_prd-12714950_sig-Cj0KCQiA88a5BhDPARIsAFj595gkPXWPT8aa-EixL97BDWjO988WDhcx-iHOVbqb_H8CLpHBcwLuJW0aAu1JEALw_wcB&gad_source=1&gclid=Cj0KCQiA88a5BhDPARIsAFj595gkPXWPT8aa-EixL97BDWjO988WDhcx-iHOVbqb_H8CLpHBcwLuJW0aAu1JEALw_wcB All other boards don't work for me either. The terminating resistor is missing Important: Before you install the drivers, remove all other device drivers. My drivers are all located in ‘Raspberry I2C MUX_11_2023’
Last updated: 2024-11-11
Post by ben1 on How to write multiple coils (Modbus FC15)
CODESYS Forge
talk
(Post)
If I am understanding what you are saying, then yes that would be your problem. I would create an array of bools on the client side for the transfer and try that. Or if client can't be changed then use words on server and unpack. But I am not sure if you or I are mis interpreting but it sounds a bit jumbled. I don't know what you have control of, but, if you are turning on BITS in the server, you should write to BITS in the client with a Function 15. If you are writing to WORDS in the server, you should write to WORDS in the client with a Function 16.
Last updated: 2024-11-17
Post by pistola on Error during Updating the Visualisation
CODESYS Forge
talk
(Post)
I've got a visualization I'm working on with some rectangles and lines. When I simulate the program I get an Error and Message in my message box, "Error during Updating the Visualisation:" and "Overflow error." Any ideas on how to fix this? I only have 70 elements total for this visualization. I am using absolute movement for a few of the elements, would this cause the issue? The visualization seemed fine before I added these movement elements, but there is only 7 that move, that doesn't seem like it should over load the system. I am currently testing using simulation so I'm not sure if that has an effect either. I tried looking in the codesys help manual and couldn't find anything referencing this.
Last updated: 2024-11-19
Post by hyys12 on CODESYS 3.5 dicovery of PLC modules
CODESYS Forge
talk
(Post)
I have a WAGO PLC, to which I am establishing a connection. Here I use the autodiscover to register the connected modules. Now, I have tested the in-/outputs of the different modules, to verify they are consistent with how they are physically connected to the PLC in regards to how CODESYS has numbered them. Will CODESYS always number the modules closest to the PLC itself lowest, and the one furthest away, the highest? I am rather new to the program, so I both hope my question makes sense, as well as not being completely obvious. Thanks!
Last updated: 2024-12-06
Post by cihangur on OpC UA server on Raspberry Pi 64 SL runtime
CODESYS Forge
talk
(Post)
After my tests, I noticed two issues. 1- WinCC disconnects the connection after receiving the GetEndPointResponse message from CoDeSys. (I found it with UAExpert and Wireshark.) 2- It establishes a connection despite waiting for a while on the network with DNS. As a result of this information: I solved the problem by adding the line "193.193.193.150 t9pac" to the C:\Windows\System32\Drivers\etc\hosts file and making Windows accept messages coming from the IP number 193.193.193.150 as coming from t9pac. (t9pac is the name of my PLC running CoDeSys.) If there is a setting that will allow CoDeSys OPC UA to respond to GetEndPointRequest with its IP address, this problem will not occur.
Last updated: 2024-12-12
Post by ben1 on Help understanding analog in-/outputs
CODESYS Forge
talk
(Post)
Hi there mate Most PLC's have a very similar concept with AI/AO - have you used any other software before? I have not used a Wago before myself, but I assume the concept would very much be: 1. Add the analog in & out cards to your hardware config. 2. Setup the raw input scaling on the hardware (eg. 4 - 20mA = 4000 - 20000) 3. Use a built in or homemade scaling block to scale your input as needed (eg. 4000 - 20000 = -100 - 2000kPa. 4. Write code as required 5. Scale output as needed (eg. 0 - 100% = 0-10000 = 0 - 10V) Is this the information you require?
Last updated: 2024-12-15
Post by imdatatas on MC_CamIn did not work properly with SMC_FreeEncoder on SoftMotion 4.17.0.0
CODESYS Forge
talk
(Post)
Hi @tk096, Thank you for your response. Here is example project file and some screenshot for your analysis regarding this matter. In order to reproduce the problem on your side and make it independent of the hardware, I simulated the encoder counter incrementally for the master in this example. I configured a virtual axis as the slave motion axis. The problem occurs in the same way in the real hardware configuration (servo drive connected to Ethercat and hardware incremental encoder) in MC_CamIn. I hope this example helps you see the problem on your side and understand and find the source of the problem with FreeEncoderAxis for Softmotion 4.17.0.0. Best Regards, Imdat
Last updated: 2024-12-19
Post by srouse on Adding a Softmotion License to a Weintek HMI
CODESYS Forge
talk
(Post)
I am trying to add a Softmotion license to my Weintek HMI. The HMI is already licensed for Codesys and I have already purchased a Softmotion license as well. When using the License Manager I get an error saying the licensing info is not available. I am fairly new to working with Codesys so I am at a bit of a loss and there seems very little information online about troubleshooting this specific issue. I have attached the error message below. If there are any ideas of how to troubleshoot this better I would be happy to hear them.
Last updated: 2025-01-09
Post by climblinne on OPC UA Method - How to wait for result?
CODESYS Forge
talk
(Post)
Hello, I am already able to run an OPC UA method in Codesys. Now my question, how can I interact with other tasks (e.g. read an SDO from EtherCAT and return it by the function)? The OPC UA method seems to be called only once (I tried to return BOOL or UINT values). Up to now I only found to do a while loop to wait for the result of the other task. Is there a better way to do it? Is this the way OPC UA functions should be used (for "not too long" function calls) or should I use another mechanism (method: Start, event: Finish, method: getResult)? Regards
Last updated: 2025-01-13
Post by sigurdrb on OPC server in "Communication manager"
CODESYS Forge
talk
(Post)
Hi! I was thinking of switching the OPC server config from "Symbol Configuration" to the "Communication manager" in the device tree. I Have a lot of arrays of structs that I have previously declared in the "Persistent Variable" object in the device tree. It seems as it is not supported to directly expose persistant variables to the OPC server like the "older" way of doing it in the symbol config. Is this correct? Do you recommend to just do it the old fashioned way, or should I edit the structure of the global variable list / persistant data / OPC server and set up the OPC server from the "Communication manager" object?
Last updated: 2025-01-20
Post by imdatatas on String length issue in GetRecipeNames method
CODESYS Forge
talk
(Post)
Hi, If the string length in the GetRecipeNames method is lower than the default value, there will be a problem with the resulting Recipe file names. For example; When the method in the link is called, let's say the defined string length is 19. In this case, the string content is corrupted as in the image. strArr: ARRAY[0..9] OF STRING(19); https://content.helpme-codesys.com/de/libs/Recipe%20Management/Current/pou-RecipeManCommands/GetRecipeNames.html The same problem does not occur when the string definition is made in the default size. strArr: ARRAY[0..9] OF STRING; FYI Regards, Imdat
Last updated: 2025-02-19
Post by imdatatas on String length issue in GetRecipeNames method
CODESYS Forge
talk
(Post)
Hi, If the string length in the GetRecipeNames method is lower than the default value, there will be a problem with the resulting Recipe file names. For example; When the method in the link is called, let's say the defined string length is 19. In this case, the string content is corrupted as in the image. strArr: ARRAY[0..9] OF STRING(19); https://content.helpme-codesys.com/de/libs/Recipe%20Management/Current/pou-RecipeManCommands/GetRecipeNames.html The same problem does not occur when the string definition is made in the default size. strArr: ARRAY[0..9] OF STRING; FYI Regards, Imdat
Last updated: 2025-02-19
Post by george32 on TCP Server
CODESYS Forge
talk
(Post)
Dear people, I would like to create a TCP server in my PLC program. The TCP server needs to communicate with an external device. I have been searching the internet and found that the libraries Syssocket or CAA NetBaseSrv are two possible solutions to create a TCP server. From what I have read, CAA NetBaseSrv is more user-friendly to implement than the Syssocket variant. However, I am still struggling to actually implement this library. Foremost is my little knowledge about creating a TCP server and how to read/understand each function block, especially the outputs of some blocks and the types, e.g. server has an output CAA.Handle, but I cannot find the explanation of CAA.Handle. I tried to find a good document that can help me understand how to implement a TCP server, but I could not find it. Thank you in advance, George
Last updated: 2025-02-20
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.