<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Placeholder and Library profile</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/40b2f4dab0/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/40b2f4dab0/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/40b2f4dab0/</id><updated>2020-02-27T14:00:58.415000Z</updated><subtitle>Recent posts to Placeholder and Library profile</subtitle><entry><title>Placeholder and Library profile</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/40b2f4dab0/?limit=25#b9a5" rel="alternate"/><published>2020-02-27T14:00:58.415000Z</published><updated>2020-02-27T14:00:58.415000Z</updated><author><name>Strucc</name><uri>https://forge.codesys.com/u/strucc/</uri></author><id>https://forge.codesys.com71e50172aeb639ca4facc314d9b487f1d5d363d4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I'm in a similar situation, I think it's quite usual to manage simulation and real "live" environments together.&lt;/p&gt;
&lt;p&gt;What I did was:&lt;br/&gt;
&lt;strong&gt;- One project, with 2 (or 3 devices)&lt;/strong&gt;&lt;br/&gt;
- All the common project code is defined in the POU tab (in your case, you can add a library manager there as well, for all the common referenced libraries)&lt;br/&gt;
- For the simulation device, the simulation library is included (in the library manager of the device/application tree), and some extra programs are added to the main task for simulation purposes&lt;br/&gt;
- For the real device, IO is assigned, and the real code is used (the real hardware library is included in the application tree)&lt;br/&gt;
- (I added a 3rd device, it's a PLC panel, but without the IO from the real technology, to test the UI experience)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When I do the development, and simulation, I use my PC as a PLC, and use some extra code to simulate the inputs&lt;/li&gt;
&lt;li&gt;Sometimes I test the UI on the real touch panel&lt;/li&gt;
&lt;li&gt;And if everything is fine, i upload the project to the real system...  and debug &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hint: If you have multiple devices, and applications, just right click on the one, you'd like to work with, and "Set active application"...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Placeholder and Library profile</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/40b2f4dab0/?limit=25#c697" rel="alternate"/><published>2020-02-27T14:00:58.164000Z</published><updated>2020-02-27T14:00:58.164000Z</updated><author><name>davec</name><uri>https://forge.codesys.com/u/davec/</uri></author><id>https://forge.codesys.comf7d78a016b77ffc3cc8e20f3a86cafb1186c71dd</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br/&gt;
we have 3 projects&lt;br/&gt;
1. HardwareLib (containing only methods to interact with hardware)&lt;br/&gt;
2. SoftwareLib (referencing to latest version of HardwareLib)&lt;br/&gt;
3. MainProject (referencing to latest version of SoftwareLib )&lt;/p&gt;
&lt;p&gt;To test the whole project (MainProject + Libraries) we created a FakeHardwareLib to mimic the real hardware.&lt;br/&gt;
Each time we need to open SoftwareLib, replace HardwareLib by FakeHardwareLib, re-install the SoftwareLib and re-compile the MainProject&lt;br/&gt;
We did a python script using ScriptEngine to automate this operation but we are now wondering if there is a better way of doing the same process maybe with Placeholder and Library profile&lt;br/&gt;
We looked at the documentation and in Codesys forum, did some tests, but we can't figure out exactly how to manage that&lt;/p&gt;
&lt;p&gt;Do you have an example or perhaps more detailed documentation on that subject&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Dave&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>