Post by jst69 on Python script: Launch Codesys, Execute Script, Exit Codesys
CODESYS Forge
talk
(Post)
Dear all: Question about scripting: I am creating a .NET program that is supposed to Open codesys, open template project, export a bunch of pou, then exit codesys. Launch works, Open project works, Export works, But how do i tell codesys to close itself? I can tell windows to terminate codesys, but i would prefer to do it properly. from __future__ import print_function import sys import System proj = projects.primary # We're interested in POU nodes: POUGuid = Guid("6f9dac99-8de1-4efc-8465-68ac443b7d08") # We collect all POU nodes in that list. pous = [] # From the parent node on, we recursively add POU nodes: def CollectPous(node): if node.type == POUGuid: pous.append(node) else: for child in node.get_children(): CollectPous(child) # Now we collect all the leaf nodes. for node in proj.get_children(): CollectPous(node) # We print everything just to know what's going on. for i in pous: print("found: ", i.type, i.guid, i.get_name()) # And now we export the files. for candidate in pous: # We create a list of objects to export: # The object itsself objects = [candidate] # And sub-objects (POUs can have actions, properties, ...) objects.extend(candidate.get_children()) # And the parent folders. parent = candidate.parent while ((not parent.is_root) and parent.is_folder): objects.append(parent) parent = parent.parent # Create an unique file name: if len(sys.argv) == 1: filename = "parent\\%s.export" % (candidate.get_name()) else: filename = "%s\\%s.export" % (sys.argv[1],candidate.get_name()) # print some user information print("exporting ", len(objects), " objects to: ", filename) # and actually export the project. proj.export_xml(objects, filename) proj.close() print ("script finished.") System.exit(0) // Dont work .NET: public static void Export(string path,string proj) { if (checkSettings()) { var p = new System.Diagnostics.Process(); p.StartInfo.FileName = Properties.Settings.Default.CSVersion +"\\CODESYS\\Common\\CODESYS.exe"; p.StartInfo.Arguments = " --Profile=" + qoute(Properties.Settings.Default.CSProfile) + " --culture=en" + " --project=" + qoute(path + "\\" + proj) + " --runscript=" + Properties.Settings.Default.LastOpenProjectPath + "\\INPUT_DATA\\SCRIPT\\Export.py" + " --scriptargs:" + qoute(path) ; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = false; p.Start(); p.StandardOutput.ReadToEnd(); p.CloseMainWindow(); p.Close(); } }
Last updated: 2024-01-16
Home (version 1) discussion
ewi04
wiki
(Thread)
Home (version 1) discussion
Last updated: 2024-01-16
wiki Discussion
dsangue
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-01-16
blog Discussion
dsangue
blog
(Discussion)
Forum for blog comments
Last updated: 2024-01-16
(no subject)
dsangue
wiki
(Thread)
Last updated: 2024-01-16
Post by timvh on Is it possible to use debug functions such as Step Execution while the PLC ladder is in Running?
CODESYS Forge
talk
(Post)
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: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_using_breakpoints.html
Last updated: 2024-01-16
wiki Discussion
bfunk
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-01-16
blog Discussion
bfunk
blog
(Discussion)
Forum for blog comments
Last updated: 2024-01-16
Home
dsangue
wiki
(WikiPage)
Project Members: dsangue (admin)
Last updated: 2024-01-16
(no subject)
bfunk
wiki
(Thread)
Last updated: 2024-01-16
Add visual background FB blocks.
CODESYS Forge
talk
(Thread)
Add visual background FB blocks.
Last updated: 2024-01-16
Post by bfunk on Wago 750-8101 (mit Codesys V3) als Profinet device
CODESYS Forge
talk
(Post)
Moin, ich habe da ein Problem und komme einfach nicht weiter... Ich moechte eine Wago 750-8101 (mit Codesys V3) zu einem ModBus TCP Slave und einem Profinet slave machen. ModBus habe ich hinbekommen, Profinet bekomme ich einfach nicht hin. habt ihr das evtl. einen hilfreichen Tip fuer mich? Programmiert wird mit Codesys V3.5 SP19 Patch 2 Auf dem Zielsystem (PFC100) ist die Zielsystemversion 4.6.0.0 Das es nicht optimal ist PN und ModBus TCP auf einer Schnittstelle zu haben ist mir bewusst. Wollte aber erstmal ModBus und Profinet zum laufen bekommen bevor ich das Profinet auf die 2. Ethernet-Schnittstelle bringe. /etc/CODESYSControl_User.cfg [SysSocket] Adapter.0.Name="br0" Adapter.0.EnableSetIpAndMask=1 Adapter.1.Name="br1" Adapter.1.EnableSetIpAndMask=1 ist eingetragen. so sieht der Status fuer das PN-device aus. Anbei ein Screenshot.
Last updated: 2024-01-16
Home
bfunk
wiki
(WikiPage)
Project Members: bfunk (admin)
Last updated: 2024-01-16
Post by smartcoco on Add visual background FB blocks.
CODESYS Forge
talk
(Post)
Can you add a background FB block to the visualization page, and loop through this FB block when the page is in display mode. This FB block requires two more functions, one for executing when the page is displayed and the other for executing when the page is closed.
Last updated: 2024-01-16
Text list from sd card
CODESYS Forge
talk
(Thread)
Text list from sd card
Last updated: 2024-01-16
Home (version 1) discussion
jdjennings1962
wiki
(Thread)
Home (version 1) discussion
Last updated: 2024-01-16
Post by edepalos on Text list from sd card
CODESYS Forge
talk
(Post)
Hi guys, I have a textlist in my project which is working just as expected in a drop down list. I would like to move this text list to a sd card and access it from there, because I want to ease the editing of the contents of this textlist. I'm imagining a solution like the operator shuts down the plant, takes the sd card out, edits the textlist on the card with a windows machines notepad, then reinserts the card in the PLC and restarts the plant, having the new content of the textlist populating the dropdown list. I'm sorry that I'm asking you to spoonfeed me, but I did not find anything straightforward to do this... I saw in the Project>Project settings>Visualisation a relative path thingy, but I have the plant in operation and I would not like to make 100 trial and errors right now... I'm also not interested in SysLib file read commands and stuff, I would just like to access the file from the cards part, I don't want to replace its contents dynamically or such... nor I have language files or recipes... Thank You in advance! Br, Ede
Last updated: 2024-01-16
wiki Discussion
adrianohorie
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-01-16
blog Discussion
adrianohorie
blog
(Discussion)
Forum for blog comments
Last updated: 2024-01-16
(no subject)
adrianohorie
wiki
(Thread)
Last updated: 2024-01-16
Home
adrianohorie
wiki
(WikiPage)
Project Members: adrianohorie (admin)
Last updated: 2024-01-16
wiki Discussion
gallusrrr
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-01-16
blog Discussion
gallusrrr
blog
(Discussion)
Forum for blog comments
Last updated: 2024-01-16
(no subject)
gallusrrr
wiki
(Thread)
Last updated: 2024-01-16
Home
gallusrrr
wiki
(WikiPage)
Project Members: gallusrrr (admin)
Last updated: 2024-01-16