引入 s7 通讯库。。。。。。。。。。。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using S7.Net;
namespace Spectrum
{
public partial class PlcDemo : Form
{
public PlcDemo()
{
InitializeComponent();
}
static Plc plc = null;
private void button1_Click(object sender, EventArgs e)
{
plc = new Plc(CpuType.S71200, "192.168.1.5", 0, 0);
plc.Open();
if (plc.IsConnected)
{
MessageBox.Show("PLC连接成功", "建立连接");
}
else
{
MessageBox.Show("PLC连接失败", "建立连接");
}
}
private void Plc_Load(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
if (plc.IsConnected == false)
{
MessageBox.Show("未连接PLC!", "连接提示", MessageBoxButtons.OK);//检查PLC是否连接;
}
else
{
var TextTeme = plc.Read("DB1.DBX0.1");
textBox3.Text += "["+ DateTime.Now.ToString()+"]"+TextTeme+"\r\n";
}
if (false)
{
//Bool
plc.Write("DB1.DBX0.0", true);
var IsRight = plc.Read("DB1.DBX0.0");
Console.WriteLine("DB1.DBX0.0: " + IsRight);
//Int
plc.Write("DB1.DBW2.0", Convert.ToInt16(1));
int Score = (ushort)plc.Read("DB1.DBW2.0");
Console.WriteLine("DB1.DBW2.0: " + Score);
// Real
plc.Write("DB1.DBD4.0", Convert.ToSingle(1.1));
var Money = ((uint)plc.Read("DB1.DBD4.0")).ConvertToFloat();
Console.WriteLine("DB1.DBD4.0: " + Money);
//String写入
var temp = Encoding.ASCII.GetBytes("Chen"); //将val字符串转换为字符数组
var bytes = S7.Net.Types.S7String.ToByteArray("Chen", temp.Length);
plc.WriteBytes(DataType.DataBlock, 1, 8, bytes);
//String读取
var reservedLength = (byte)plc.Read(DataType.DataBlock, 1, 8, VarType.Byte, 1);//获取字符串长度
var Name = (string)plc.Read(DataType.DataBlock, 1, 8, VarType.S7String, reservedLength);//获取对应长度的字符串
Console.WriteLine("DB1.8.0: " + Name);
// DInt
plc.Write("DB1.DBD264.0", Convert.ToInt32(20));
var dIntVar = (uint)plc.Read("DB1.DBD264.0");
Console.WriteLine("DB1.DBD264.0: " + dIntVar);
// DWord
plc.Write("DB1.DBD268.0", 123456);
var dWordVar = (uint)plc.Read("DB1.DBD268.0");
Console.WriteLine("DB1.DBD268.0: " + dWordVar);
// Word
plc.Write("DB1.DBD270.0", 12345678);
var wordVar = (uint)plc.Read("DB1.DBD270.0");
Console.WriteLine("DB1.DBD270.0: " + wordVar);
}
}
private void button9_Click(object sender, EventArgs e)
{
if (textBox4.Text == "false")
{
plc.Write("DB1.DBX0.1", false);
}
if (textBox4.Text == "true")
{
plc.Write("DB1.DBX0.1", true);
}
MessageBox.Show("操作成功!");
}
private void button5_Click(object sender, EventArgs e)
{
}
private void button10_Click(object sender, EventArgs e)
{
plc.Write("M30.0", true);
//var IsRight = plc.Read("M30.0");
//var IsRight = plc.Read("M30.0");
//MessageBox.Show(IsRight.ToString());
}
}
}