命名空间:netMarketing.automation.plc.Omron.FinsLibrary
功能:欧姆龙PLC基于Tcp通讯的Fins通讯类,支持全系列的欧龙PLC
功能详细说明:
FinsSocket支持的欧姆龙PLC包括CP系列, Nj系列, Nx系列的欧姆PLC。可以在监视模式或者运行模下读写PLC的内存。
这个类使用简单,已经经过多个项目检验过,勇哥推荐使用它!
常用函数列表:
/// 构造函数 public FinsSocket(string strServerIP = "192.168.250.1", int ServPort = 9600) /// 写内存 public bool Write(_eMemory eMemory, ushort offSet, byte bitOffset, bool data) public bool Write(_eMemory eMemory, ushort offSet, byte bitOffset, bool[] data) public bool Write(_eMemory eMemory, ushort offset, short data) public bool Write(_eMemory eMemory, ushort offset, short[] data) public bool Write(_eMemory eMemory, ushort offset, int data) public bool Write(_eMemory eMemory, ushort offset, int[] data) public bool Write(_eMemory eMemory, ushort offset, long data) public bool Write(_eMemory eMemory, ushort offset, long[] data) public bool Write(_eMemory eMemory, ushort offset, float data) public bool Write(_eMemory eMemory, ushort offset, float[] data) public bool Write(_eMemory eMemory, ushort offset, double data) /// 读内存 public bool Read(_eMemory eMemory, ushort OffSet, byte bit, ref bool reData) public bool Read(_eMemory eMemory, ushort OffSet, byte bit, ref bool[] reData) public bool Read(_eMemory eMemory, ushort OffSet, ref short reData) public bool Read(_eMemory eMemory, ushort OffSet, ref short[] reData) public bool Read(_eMemory eMemory, ushort OffSet, ref int reData) public bool Read(_eMemory eMemory, ushort OffSet, ref int[] reData) public bool Read(_eMemory eMemory, ushort OffSet, ref long reData) public bool Read(_eMemory eMemory, ushort OffSet, ref long[] reData) public bool Read(_eMemory eMemory, ushort OffSet, ref float reData) public bool Read(_eMemory eMemory, ushort OffSet, ref float[] reData) public bool Read(_eMemory eMemory, ushort OffSet, ref double reData) public bool Read(_eMemory eMemory, ushort OffSet, ref double[] reData) public bool Write(_eMemory eMemory, ushort offset, double[] data) public bool ChangePLCMode(_ePLCMode eMode) public bool WriteMultiple(_eMemory startMemory, ushort offset, short[] iMultiple) public bool ReadMultiple(_eMemory startMemory, ushort offset, ref short[] iMultiple)
示例程序:
using netMarketing.automation.plc.Omron.FinsLibrary; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace FinsLibraryTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { FinsSocket cp1h; cp1h = new FinsSocket(); cp1h.IP = "192.168.250.1";//PLC IP地址 cp1h.Port = 9600; //PLC IP端口号 float[] plcdataF = new float[1] { 0 }; cp1h.Write(_eMemory.DM, 2000, 111.5f); Thread.Sleep(200); cp1h.Read(_eMemory.DM, 2000, ref plcdataF); richTextBox1.AppendText(plcdataF[0].ToString()); } } }
观察plc内存,可以看到结果是正确的。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


