Can I used Step7 as PLC simulator? - automation

I have PLC program written in Step7.
Also i have SCADA with OPC Server.
I want to simulate PLC with programm from Step7 and connect it to OPC Server, because i want SCADA testing.
Can I used Ste7 as PLC simulator, how can i do that ?
I founded some blog where what tutorial how to config Step7 and simulator, but doesn't work, this was very old tutorial.

As an alternative solution to the fine one from tonteria2424
You could try to load the program into a virtual S7-1500 and activate OPC-UA ..
Follow this 7 virtual steps (step7)
Download trial versions of simatic tia portal from
https://support.industry.siemens.com/
Google "S7-PLCSIM Advanced trial"
and "tia portal trial"
You need "STEP 7 Professional V14" SP1 + updates
and "SIMATIC S7-PLCSIM Advanced V1.0 SP1"
Then you can load your program into a virtual plc, connected to a virtĂșal network adapter and use the opc server(in the virtual plc) as a datasource for your scada and test it for 21 days.
PLCSim Advance can do networking, so testing can be close to "real life".
I have tested this setup many times.
if your scada cannot do opc ua... that was covered by the first answer ;)
(I did not know that NetToPlcSim was opc da capable)
//PerD

Please go the support Site of Siemens and narrow down your question. It is far too open.
But I guess that this might be your answer.
PLC SIM (for 300, 400 and 1200 and 1500) does not support externel connections. Only internal to their HMI/Scada on the same host.

I did what you want using PLCSIM + a free software called NetToPlcSim simulating S7 300.
I used Simatic step 7 v5.5 I don't know if it still works with newer versions

Related

Allen Bradley Connected Components RS Linx USB Connection

I am working with Allen Bradley's Connected Component Workbench to program a Micro 830 Controller. I'm having an issue when I try to connect to the controller via USB. The USB never comes up in RSLinx even though Windows Device Manager says the driver is installed and working correctly. I am running Connected Components Workbench version 10.01.00 on a Windows 10 machine plugged directly into the Controller via USB and I know that I can connect to the PLC with another machine in the office. Is there still something I'm missing?
I had the same problem. Thing to try:
1) Most of Allen Bradley's equipment only work on a USB 2.0 or below. My computer has both 2.0 and 3.0 ports. Only 2.0 ports will talk to a 830 PLC.
2) Flow this guide:
https://theautomationblog.com/setup-micro800-usb-comms/
3) Download and install the newest version of RsLinx https://compatibility.rockwellautomation.com/Pages/MultiProductFindDownloads.aspx?crumb=112&refSoft=1&toggleState=&versions=51543
4) Call you local AB sales office and ask for help. If you stop by they will help you for free. All sales office have support people that help.

Communication between JADE agents AND siemens S7 1200 PLC

i would like to learn how I can make my agents communicate with a PLC(siemens S7 1200). Basically the agents are created in JADE and make a decision kind of a true and false decision which they are to send the PLC. If its true the PLC is activated or otherwise. I have heard of the concept of using simple object access protocol, but not familiar with it (if anyone knows how to use that they can help me with a sample program or means of linking my programs). To complete this by 08 April 2013
I think you're talking about OPC.
OPC is an 'open' standard guarded and maintained by the OPC Foundation.
Every manufacturer of PLCs has an OPC server that communicates over their own protocol to their PLCs. The OPC clients can be donwloaded, purchased or created.
In short [S7-1200] cable S7 over ethernet cable [PC OPC Server intern OPC Protocol intern OPC Client]
In your case, you need an OPC Server from Siemens for the S7-1200. And the OPC client will be your agent. JADE needs to have a OPC library in order to communicate over OPC. See the website of www.opcfoundation.org for the possibilities.
Now you can read and write directly into the PLC.
But, you're using an S7-1200. The new micro automation PLC from Siemens. This has a new memory lay-out and OPC need some tricks to make it work. (Has to do with direct addressing in the older S7 PLCs and the named values in the S7-1200). The following FAQ from Siemens will help you further
How do you connect a PC station to an S7-1200 with OPC?
http://support.automation.siemens.com/WW/view/en/39960679
Or you could try sending the values via TCP/IP. This requires a reprogramming of the PLC.
CPU CPU Communication
http://support.automation.siemens.com/WW/view/en/20982954
I know this is a bit late but libnodave is a package for communication with Siemens PLC's. It works in Java too which is a great plus. I don't think it is suitable for industrial applications though. I do remember Siemens having their own version of the library. Just google it.

How to Test a Network Application with only a Single Computer?

I want to kick myself to learning network programming, starting with implementing existing network protocols. I've finished the (rudimentary) design and will start coding soon. The problem I haven't been able to figure out solution to is related to testing: I only have one Windows laptop running Windows 7 Pro with only a recovery disc (no installation disc) that obviously cannot be used on a VM.
Hard-coding input/output data clearly isn't a good way to test any sort of program. So, what solutions can I look into?
Thanks for your time.
P.S.: In case this matters, I'll do the coding in C++.
You can run a client and a server on the same machine. When accessing the network layer, just use the local callback loop (127.0.0.1 for ipv4 or ::1 for ipv6) to connect to your server when you run the client.
If you provide the APIs that you will be using (wininet, APR, Boost etc) a more detailed answer would be available.
What about a VM with Ubuntu or some other distro of Linux?

Network bandwidth assesment tool

I need to test the bandwidth I have on my USB RNDIS connection. I am using windows CE 6.0.
I already tried looking into iperf for windows ce, but, sadly, I did not manage to compile it.
Can anybody recommend of a tool/API to test the bandwidth under Windows CE?
In case the answer involves an API, I am looking for something with minimal effort (obviously)
Can't you do something as simple as connecting to the other end (you didn't say if you want to test from the device side or PC side), pull some known-size file, and time the pull. You then have bytes/time.

Using laptop as a second programming monitor

The joys of multimonitor programming are countless, I think there are about 5 blog posts on Coding Horror on the topic alone!
I often code in Windows on my main machine, and have my Mac laptop set up to the side. I use the Mac both to compile Mac builds but also as my "reference web browser". There's no KVM or anything.
However a casual conversation at a conference led me to the question, could I use two independent machines to share windows? Literally move some windows from one machine to another, so I could use one PC's display as "overflow" from the other.
Some googling suddenly shows that this is possible in some situations for sure:
Synergy and Maxivista
My question is whether any programmers have tried such a setup. We have unique needs especially with multiple text windows and editors, and this kind of tool may be a huge win or a huge hassle.
This solution feels like a combination of easy KVM switching AND multiple monitors.. it sounds like a programming dream! So advice or especially reports of actual experience in a programming environment would be greatly useful before I invest in the rather complex setup.
Followup:
Sounds like I'm asking for something that doesn't exist! It's kind of combination of a software KVM and VNC. But the VNC would need to break out the app windows and allow individual manipulation (like that maxivista commercial tool, which is Vista only).
Thanks for all the feedback. Looks like there's demand for a cool app if anyone has the drive to be first in this new nich!
Synergy doesn't allow you to move windows between machines (that would require a silly amount of work behind the scenes), but it does allow you to share a keyboard and mouse between two machines so they "appear" to be all one machine, but actually run separately.
I personally use Input Director, as I found it more stable than Synergy. I have my laptop with an external monitor to the right, and my desktop to the left as an Input Director slave. My desktop runs a different O/S and is basically my guinea pig box for testing stuff and for anything I need to keep running when I leave the office. Cut + paste is pretty seamless, so I can quite happily fire up an RDP session to a server on my desktop, and cut+paste SQL scripts from that to my laptop.
It's a very useful thing to have if you have a few physical boxes and monitors kicking around :)
I've actually managed to use spare notebook as a second monitor to Desktop PC. This allows to move windows to second PC, but not vise-versa.
Solution would work basically with any OS.
The only requirement is a spare VGA (or DVI-I/DVI-A) port on server PC.
Make a dummy VGA plug http://www.overclock.net/t/384733/the-30-second-dummy-plug
This will also work for DVI-I/DVI-A port + DVI-VGA adapter
Detect virtual monitor with your OS. Monitor will be detected as very generic monitor, so you can set up any resolution. Set it to slave PC resolution.
Use any remote control software to connect from slave to server PC. Set it to display only "virtual" monitor.
That's all. Your slave PC is a second monitor for server PC.
I've used this on Windows 7 + TeamViewer. I've additionally set up Mouse Without Borders (Microsoft Synergy analog) to be able to use slave PC with same mouse&keyboard, though this is not required if you intend to transform it to monitor-only.
Xdmx - Distributed Multihead X Project (linux only)
Provides native X display on external machines, no VNC cons.
The following is not exactly what you want, but pretty close:
You can start a VNC server on the Windows machine, which will let you "export" its graphical screen.
Then, unplug the monitor from the Windows machine and use it as external laptop monitor instead, with your Mac laptop.
There, on your Mac, you just connect to the VNC session using Chicken of the VNC, which will give you the graphical screen content of the Windows machine as a Mac window (interactively, so you can actually control the windows machine as if you were working on it directly). You can put that on the external monitor, and you can also put other windows there, so you really have a shared environment.
I believe this solution also lets you copy and paste content from the Windows screen to Mac windows and vice versa.
I use MaxiVista on WinXP while programming. It works fantastically and lets me add a third screen to my multi-monitor configuration.
There is hope, here for windows users: http://virtualmonitor.github.io/ Looks like a work-in-progress and only supports windows 2000 - windows 7, but he's looking for help with windows 7 - 8.
Unfortunately, synergy doesn't allow moving windows across screens currently. It only forwards mouse&keyboard events from one set of physical devices to different computers.
Yes, and I love it. It allows you get past 2 screens on a laptop, and really I find 3 a great amount.
If your main machine is a Mac you want ScreenRecycler. You can then use monitors on other Mac, Windows, and Linux machines (anything with a VNC client). You will want something better than the Mac's crappy windows management though. I suggest Many Tricks' Moom and Witch.
On Windows, as #LachlanG said, MaxiVista works great. And it supports adding monitors from Windows, Mac, and Linux machines.
I am reusing my old laptop as a second monitor to see the live preview while coding. I am using SpaceDesk, which is free.
I use barrier and open source fork of synergy. Its a little hard to use but works really well. (To find it just search google for 'barrier github').