Josh Dalzell | November 8th, 2016
If you have ever worked with SIMATIC H Stations, you probably found that PLCSIM does not fully support them. PLCSIM simulates each individual controller just fine, but if you try to get two of these controllers to talk to each other with PLCSIM, it simply doesn’t work. I recently worked on a project that included AS-wide communication between H Stations and in this blog I’ll share with you the simple workaround I used to simulate this project with PLCSIM. If necessary, you should download and read our PDF on configuring Siemens PCS7 to use PLCSIM.
PLCSIM Limitations
The help file for S7-PLCSIM V5.4 + SP5 + Upd1 states in the section “Differences from a real PLC”, that “H systems are not supported by S7-PLCSIM” (Figure 1). This is not entirely true because, in my experience, PLCSIM appears to work if you only need to simulate a single controller. It only starts to have problems when you have multiple controllers that you would like to simulate. Unfortunately, this was exactly the position I was in.
Figure 1: PLCSIM Help File
When you follow the instructions in “Configuring Siemens PCS7 to Use PLCSIM“, you find that NetPro refuses to download the H Station configuration to PLCSIM (Figure 2), and this is the reason that AS-to-AS communication does not work with PLCSIM. NetPro configures the AS-wide connections, so without a successful download, the PLCSIM instances won’t know how to communicate.
Figure 2: NetPro error when downloading to PLCSIM
If you have ever tried to make an interconnection between blocks that reside in the charts of two different controllers (a.k.a. “AS-wide”), you have probably seen the following warning (Figure 3). Take note that it is specifically the NetPro configuration that must be compiled and downloaded after proceeding, so this confirms that NetPro not downloading to the H Station is the root of our problem.
Figure 3: AS-wide interconnection warning
The Solution
To get around this limitation, I configured another pair of controller stations that are compatible with PLCSIM. You cannot test the redundancy of the original controllers, but for the purpose of testing the equipment modules and interlocks, this was adequate.
Before proceeding, I compiled the original chart folders with “Generate module drivers”. This prevents future errors caused by missing module driver connections because some module drivers are picky about not having actual, configured hardware (e.g. SIWAREX blocks), as seen below (Figure 4).
Figure 4: NetPro SIWAREX block compile error
I created a new CPU 410-5H controller in the same project as the original but within a new SIMATIC 400 Station (instead of a SIMATIC H Station). It doesn’t really matter which controller you pick as long as it has Ethernet communication (look for the PN in the model). I assigned an IP to the PN in HW Config within the existing System Bus. Then I moved (Cut or Ctrl+X) the original project folder from the H Station and pasted it into the controller I just created. This is illustrated below in Figure 5.
Figure 5: Moving the project to the new controller
I repeated this for the other controller. The only difference is the IP address of the second controller, which was 192.168.1.101 in my case.
I left the hardware configuration of the original project alone. This way, when I was done testing, all I had to do was cut and paste the program back into the original controller. If I ever needed to edit the hardware, I simply had to cut and paste the Symbol Table back to the original controller and all the symbols were back in HW Config of the original controller.
Once both S7 Programs were within the new controllers, I continued as normal, following the instructions in “Configuring Siemens PCS7 to Use PLCSIM” (download HW Config, download NetPro, download charts to two separate PLCSIM instances). This time, NetPro successfully downloaded to each PLCSIM instance. From then on I was home free to enjoy the benefits of my simulated H Stations.
After the program resides within the new (non-H Station) controller, I recommend unchecking “Generate module drivers” when compiling charts. As I mentioned earlier, some hardware is picky about not having actual, configured hardware (e.g. SIWAREX modules), so if you disturb the connections that were in place it will error out of the compilation.
PLCSIM is a great tool to use when you don’t have a real controller available, but the help documentation makes it clear that it has limitations compared to a “real” PLC. Possibly the greatest limitation is not supporting AS-wide communications between H Stations. Luckily, there is a way around this.