Page 1 sur 1

PLCSIM advanced

Posté : 16 août 2018, 23:55
par Ronan
Salut !

Certains d'entre vous utilisent PLCSIM advanced ? Je viens de l'utiliser pour de la simulation hors ligne, et j'avoue qu'une fois lancé, c'est plutôt efficace !

Ca permet d'avoir la simulation qui tourne sur un PC indépendant, et d'être à plusieurs à bosser (comme sur un automate). Mais le gros avantage, c'est qu'on peut tout piloter en C# et C++.

Personnellement, je programme en C# et j'ai :
- 1 thread qui met à jour automatiquement les entrées de feedback des relais en fonction des sorties.
- 1 thread qui met à jour automatiquement les entrées des capteurs de position en fonction des ordres actionneurs.

Pour ceux qui l'utilisent, vous en faites quoi ?

Un petit exemple pour ceux qui sont curieux :

Code : Tout sélectionner

/*
 * Created by SharpDevelop.
 * User: Virtual
 * Date: 16/08/2018
 * Time: 21:51
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Threading;
using Siemens.Simatic.Simulation.Runtime;

namespace CPU1515F
{
	class Program
	{
		public static void Main(string[] args)
		{
			Console.WriteLine("Starting simulation");
			//Use it for local instance
			//IInstance myInstance = SimulationRuntimeManager.CreateInterface("Golf8");

			//Use it for remote instance
			IRemoteRuntimeManager myRemoteInstance = SimulationRuntimeManager.RemoteConnect("192.168.1.101:50000");
			IInstance myInstance = myRemoteInstance.CreateInterface("1515F");
		
			//Update tag list from API
			Console.WriteLine("Tags synchronization");
			myInstance.UpdateTagList();
		
			//Start a thread to synchronize feedbacks inputs 
			Thread tFeedbacks = new Thread(()=>synchroFeedbacks(myInstance));
			tFeedbacks.Start();
			
			//Allow the user to quit simulation
			Console.WriteLine("Simulation running");
			Console.WriteLine("Press any key to quit . . . ");
			Console.ReadKey(true);
		}
		
		static void synchroFeedbacks(IInstance myInstance)
        {
			while(true){
				//Keep %I and %Q opposite
				myInstance.WriteBool("FB_KA1", !myInstance.ReadBool("KA1"));	
			}
		}
	}
}

Re: PLCSIM advanced

Posté : 17 août 2018, 09:21
par sinced
Juste pour la simulation, tu crées du code ? ça doit être des programmes costauds

Re: PLCSIM advanced

Posté : 17 août 2018, 09:27
par Ronan
sinced a écrit : 17 août 2018, 09:21 Juste pour la simulation, tu crées du code ? ça doit être des programmes costauds
Oui, mais c'est nettement plus rapide et efficace qu'avec les scnénarios PLCSIM.
C'est des programmes conséquents oui, avec robots, beaucoup d'actionneurs et safety.

Re: PLCSIM advanced

Posté : 17 août 2018, 10:13
par sinced
OK je comprend