<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Adding Devices with Py Scripts</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/ed2b314a16/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/ed2b314a16/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/ed2b314a16/</id><updated>2020-02-27T14:57:07.146000Z</updated><subtitle>Recent posts to Adding Devices with Py Scripts</subtitle><entry><title>Adding Devices with Py Scripts</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/ed2b314a16/?limit=25#fbc1" rel="alternate"/><published>2020-02-27T14:57:07.146000Z</published><updated>2020-02-27T14:57:07.146000Z</updated><author><name>mkeller</name><uri>https://forge.codesys.com/u/mkeller/</uri></author><id>https://forge.codesys.coma47d7779f55be1f8f4f32f2f486a7e353a268f08</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi chenhe.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;chenhe hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
May I know what those supported device description formats are? &lt;br/&gt;
I have tried to run the line below, it reported error saying "Data at the root level is invalid. Line 1, position 1" I assume it is because eds is the invalid format?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With CODESYS V3.5 SP10 or newer we also support the import of foreign device descriptions. You can import the same formats as through the UI.&lt;/p&gt;
&lt;p&gt;You have to use the following method to import a foreign device description:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;allConvert&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'{C633F245-876F-45E8-AAB4-3FBD994C08B8}'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;sources&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;device_repository&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sources&lt;/span&gt;
&lt;span class="n"&gt;repoSource&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sources&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;"TestRepo"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;devId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;device_repository&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;import_device&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;basepath&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="s1"&gt;'\some-device.eds'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;repoSource&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;allConvert&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;BR&lt;br/&gt;
Martin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Adding Devices with Py Scripts</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/ed2b314a16/?limit=25#d9cd" rel="alternate"/><published>2020-02-27T14:57:06.491000Z</published><updated>2020-02-27T14:57:06.491000Z</updated><author><name>chenhe</name><uri>https://forge.codesys.com/u/chenhe/</uri></author><id>https://forge.codesys.com0c7cfbcc610fe8c036f56306970a5d2e40eda5e1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;M.Keller hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
At the moment we only support our own device description format but we plan to support the other formats through the converters.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hi M.Keller, &lt;/p&gt;
&lt;p&gt;May I know what those supported device description formats are? &lt;br/&gt;
I have tried to run the line below, it reported error saying "Data at the root level is invalid. Line 1, position 1" I assume it is because eds is the invalid format?&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;devId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;device_repository&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;import_device&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;"C:\\Users\\hch\\svn\\codesys_awc500_testapp\\Testapp_original\\devices\\DEIF_LoopBack_Device_v4.eds"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sysRepoSource&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Adding Devices with Py Scripts</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/ed2b314a16/?limit=25#49ad" rel="alternate"/><published>2020-02-27T14:57:05.728000Z</published><updated>2020-02-27T14:57:05.728000Z</updated><author><name>mkeller</name><uri>https://forge.codesys.com/u/mkeller/</uri></author><id>https://forge.codesys.com06e6a226658cb0151f6f79d6b8d4c1e88feb44f9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi SK.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;codesys_sig_forum hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
I am attempting to add devices(sercos master, drives, profinet I/O  etc.) to my application object. I read in one of the posts about an API implementation for device repository to be available from v3.5 sp9. Can you please provide a code snippet with its usage??.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At the moment we only support our own device description format but we plan to support the other formats through the converters.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="ss"&gt;sysRepoSource =&lt;/span&gt; device_repository&lt;span class="o"&gt;.&lt;/span&gt;sources&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;System Repository'&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="ss"&gt;devId =&lt;/span&gt; device_repository&lt;span class="o"&gt;.&lt;/span&gt;import_device&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="l"&gt;&amp;lt;path_to_device_desc&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; sysRepoSource&lt;span class="p"&gt;)&lt;/span&gt;
device_repository&lt;span class="o"&gt;.&lt;/span&gt;remove_device&lt;span class="p"&gt;(&lt;/span&gt;devId&lt;span class="p"&gt;,&lt;/span&gt; sysRepoSource
&lt;/pre&gt;&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;codesys_sig_forum hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
The goal is to add devices to my application object( starting with an empty project) using scripts. Thanks in advance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;\# &lt;span class="nv"&gt;Check&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;necessary&lt;/span&gt; &lt;span class="nv"&gt;device&lt;/span&gt; &lt;span class="nv"&gt;description&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;installed&lt;/span&gt;
&lt;span class="nv"&gt;devId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;device_repository&lt;/span&gt;.&lt;span class="nv"&gt;create_device_identification&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4096&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0000 0001&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3.5.9.0&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;devDesc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;device_repository&lt;/span&gt;.&lt;span class="nv"&gt;get_device&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;devId&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;devDesc&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;None&lt;/span&gt;:
   &lt;span class="nv"&gt;raise&lt;/span&gt; &lt;span class="nv"&gt;Exception&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;No WinV3 PLC available in device repo&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;proj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;projects&lt;/span&gt;.&lt;span class="nv"&gt;primary&lt;/span&gt;
\# &lt;span class="nv"&gt;Add&lt;/span&gt; &lt;span class="nv"&gt;PLC&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;an&lt;/span&gt; &lt;span class="nv"&gt;empty&lt;/span&gt; &lt;span class="nv"&gt;project&lt;/span&gt; &lt;span class="nv"&gt;using&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;DeviceId&lt;/span&gt; &lt;span class="nv"&gt;instance&lt;/span&gt;
&lt;span class="nv"&gt;proj&lt;/span&gt;.&lt;span class="nv"&gt;add&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Device&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="nv"&gt;devId&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;found&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;proj&lt;/span&gt;.&lt;span class="nv"&gt;find&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Device&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="nv"&gt;False&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;assert&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;found&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;None&lt;/span&gt; &lt;span class="nv"&gt;and&lt;/span&gt; &lt;span class="nv"&gt;len&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;found&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;No object with the name Device found&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;assert&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;found&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;].&lt;span class="nv"&gt;is_device&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Found object is not a device&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;device&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;found&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;]
\# &lt;span class="nv"&gt;Add&lt;/span&gt; &lt;span class="nv"&gt;Ethernet&lt;/span&gt; &lt;span class="nv"&gt;device&lt;/span&gt; &lt;span class="nv"&gt;using&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;type&lt;/span&gt;, &lt;span class="nv"&gt;ID&lt;/span&gt; &lt;span class="nv"&gt;and&lt;/span&gt; &lt;span class="nv"&gt;version&lt;/span&gt; &lt;span class="nv"&gt;instead&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;DeviceID&lt;/span&gt;
&lt;span class="nv"&gt;device&lt;/span&gt;.&lt;span class="nv"&gt;add&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ethernet&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="mi"&gt;110&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0000 0002&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3.5.9.0&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;ethernet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;device&lt;/span&gt;.&lt;span class="nv"&gt;find&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ethernet&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="nv"&gt;False&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;]
&lt;/pre&gt;&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;codesys_sig_forum hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
(Edit): Where can I find the parameters DeviceType, DeviceID, Supported Firmware Version and ModuleID pertaining to the device?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can find the required parameters on the tab "Information" of the corresponding device editor.&lt;/p&gt;
&lt;p&gt;BR&lt;br/&gt;
Martin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Adding Devices with Py Scripts</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/ed2b314a16/?limit=25#7d97" rel="alternate"/><published>2020-02-27T14:57:04.009000Z</published><updated>2020-02-27T14:57:04.009000Z</updated><author><name>esskaey</name><uri>https://forge.codesys.com/u/esskaey/</uri></author><id>https://forge.codesys.com43b05060d62b327accfaadfd4740ee49f3e1882c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;I am attempting to add devices(sercos master, drives, profinet I/O  etc.) to my application object. I read in one of the posts about an API implementation for device repository to be available from v3.5 sp9. Can you please provide a code snippet with its usage??. &lt;/p&gt;
&lt;p&gt;The goal is to add devices to my application object( starting with an empty project) using scripts. Thanks in advance.&lt;/p&gt;
&lt;p&gt;(Edit): Where can I find the parameters DeviceType, DeviceID, Supported Firmware Version and ModuleID pertaining to the device?&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;SK&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>