我可以用C#编写PLC控制程序吗?如何实现?
不太可能。C#需要实现公共语言运行时(CLR)来运行用该语言或任何.NET语言开发的应用程序。因为各种原因,我会说任何PLC都很难支持它。
现在您可以做的是使用OPC协议使C#应用程序读取和写入PLC中的数据。有一些可用于.NET Framework的不同库来使用OPC。
这里是一个非常好的网站,列出了各种选择。
贝克霍夫(Beckhoff)的 TwinCAT 是最好的选择!否则,您必须使用 IEC 6113-3,它有五种编程风格,包括最接近“文本代码外观”的“结构化文本”代码。
警告:永远不要创建一个带有常量循环(while(1))的程序,否则它将被检测为故障。该循环是全局的且已验证。
享受 PLC 编程吧!
Twincat版本3(即Beckhoff PLC开发环境)将支持C++编程语言,除了C#。
是的,您可以。
我现在正在真实环境中使用它。我们正在使用Modbus协议通过TCP连接。
我不会说这很容易,或者对于PLC编程来说是最佳选项,但它确实有效,我们的在线机器正在全球范围内运行,并在您附近的医院工作和运行 :)
甚至不必使用C#,您可以使用任何可以通过TCP进行通信的语言,您只需要编写一个能够通过TCP工作的Modbus接口,这是出奇的容易的。 然后,您需要获得一些从Modbus TCP接收命令并将其转换到设置其他部分的Slave Controllers。
许多人此时会皱起眉头,说些废话,比如“非确定性环境”、“内存管理”或我最喜欢的“不能在RTOS上运行”。 这些都是废话。 实际上,很少有环境需要RTOS或确定性编程才能使其正常工作,事实上,200ms的响应时间就足够了,我们发现C#做得最好。 如果您的环境需要RTOS,则不建议使用C#,但如果像大多数环境一样,您只需要在人的感知时间内控制事物,则C#[填写您的语言选择]就可以了。
哦,远离梯形编程或任何那种垃圾,这是愚蠢的,旨在使电气工程师更容易过渡。
不,至少现在不行。未来呢?我认为也几乎不可能。
PLC太硬件特定了,无法使用CLR编写程序。
如果您有兴趣编写可在不同类型的PLC之间移植的代码,目前最接近的方法是使用IEC 6113-3结构化文本代码。
大多数(如果不是全部)领先的PLC制造商现在都能够使用它,包括欧姆龙、西门子、艾伦·布拉德利、三菱、Telemecanique等等。
许多PLC制造商提供DLL文件,以便与基于PC的软件(如VB、C#、VB.NET)进行通信。
在DELTA PLC网站上,您可以找到用于与Delta PLC通信的C#代码。
如果想了解如何使用VB与PLC通信,您可以访问以下网址:
http://plc-scada-dcs.blogspot.com/2013/06/plc-visual-basic-60-communication-using.html
自从我进行PLC编程以来已经很长时间了,但是PLC只是一组基于输入、定时器等做出决策并发布输出的逻辑门,为什么VB或C#或任何.NET语言不能执行此逻辑?
这不是关于指导PLC的问题,而是一个更大的问题,即如果硬件、驱动程序和DLL可用,它是否可以替代PLC。
如果还没有,很快就会有这个功能。