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 S7demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//加载参数
this.cbType.DataSource = Enum.GetNames(typeof(CpuType));
}
private Plc siemens;
private void btnConnect_Click(object sender, EventArgs e)
{
CpuType type = (CpuType)Enum.Parse(typeof(CpuType),cbType.Text,false);
try
{
siemens = new Plc(type, textBoxIp.Text, 0, 1);
siemens.Open();
MessageBox.Show("sucess");
}
catch (Exception)
{
MessageBox.Show("connect failed");
}
}
private void btnDisconnect_Click(object sender, EventArgs e)
{
siemens.Close();
MessageBox.Show("断开连接");
}
private void btnRead_Click(object sender, EventArgs e)
{
byte[] data = siemens.ReadBytes(DataType.DataBlock,1,0,20);
UInt16 res = BitConverter.ToUInt16(new byte[2] {data[1],data[0]}, 0); //2个字节 VW0
float num = BitConverter.ToSingle(new byte[4] { data[7], data[6], data[5], data[4] }, 0);//4 个字节 VD4
MessageBox.Show(res.ToString());
}
private void btnWrite_Click(object sender, EventArgs e)
{
ushort num = ushort.Parse(textBoxWrite.Text);
byte[] a = BitConverter.GetBytes(num);
siemens.WriteBytes(DataType.DataBlock, 1, 0, new byte[] { a[1],a[0]});
}
private void label2_Click(object sender, EventArgs e)
{
}
}
}