代码如下:
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 System.Data.SqlClient;
using System.Threading;
using EasyModbus;
namespace UseingDatabase
{
public partial class Form1 : Form
{
#region 初始变量
public int QueryID = 0;//初始化写入ID值
public string testName = "电压"; //写入测试的名称
#endregion
public Form1()
{
InitializeComponent();
this.timer1.Stop();
if(readEndID("ID")>0)
{
QueryID = readEndID("ID")+1;
}
else
{
QueryID = 0;
}
}
/// <summary>
/// 读取PLC值
/// </summary>
/// <returns></returns>
public float ModbusTcp()
{
ModbusClient client = new ModbusClient();
client.Connect("127.0.0.1",10002); ;
float PlcFloat = 0;
if(client.Connected)
{
if (client.Connected)
{
try
{
int[] readInt = client.ReadHoldingRegisters(1200, 2);
short low = Convert.ToInt16(readInt[0]);
short high = Convert.ToInt16(readInt[1]);
PlcFloat=GetFloat(high, low);
}
catch (Exception ex)
{
MessageBox.Show("PLC读取异常" + ex.Message);
}
}
else { MessageBox.Show("plc未成功连接"); }
}
return PlcFloat;
}
/// <summary>
/// 转换32位整型为小数
/// </summary>
/// <param name="P1"></param>
/// <param name="P2"></param>
/// <returns></returns>