各位大神你們好!
最近在練習寫plc程式
我程式讀取plc需要用到16進位
所以我把textBox13轉換成16進位
但現在textBox13只能輸入16進位
需要而外加什麼程式碼
才能給其他使用者在textBox13輸入10進位?
程式碼區塊
byte[] data1 = { 0x46, 0x49, 0x4E, 0x53, 0x00, 0x00, 0x00, 0x1A,
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
0x02, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01 };
byte[] command = { 0x01, 0x02 };
byte[] data2 = { 0x00 };
byte[] data3 = {0x00, 0x00 };
byte[] data4 = { 0x00 };
byte[] data5 = { 0x00, 0x00 };
byte[] data6 = { 0x00, 0x00 };
data1 = data1.Concat(command).ToArray();
data3 = GetBytes(textBox10.Text);
data5 = GetBytes(textBox13.Text);
for (i = 0; i < Convert.ToInt32(textBox13.Text, 16); i++)
{
str += textBox11.Text;
}
data6 = GetBytes(str);
data1 = data1.Concat(data2).Concat(data3).Concat(data4).Concat(data5).Concat(data6).ToArray();
data1[7] = Convert.ToByte((data1.Length - 8).ToString("X2"), 16);
server.Send(data1);
byte[] rece = new byte[250];
server.Receive(rece);
textBox2.Text = "0102" +
comboBox1.Text.Trim() +
textBox10.Text.Trim() +
textBox13.Text.Trim() +
str.Trim();
for (int i = 0; i < rece.Length; i++)
{
textBox3.Text += rece[i].ToString("X2") + " ";
}
textBox預設只能16進位??
(c#的textBox預設整數應為十進位,個人沒玩過pcl,或許因為plc環境會有差異)
2.輸入內容轉16進位
您查一下 HslCommunication
// 欧姆龙PLC通讯,指定PLC的ip地址和端口号
var omronFinsNet = new OmronFinsNet("192.168.1.110", 6000);
omronFinsNet.SA1 = 10;
omronFinsNet.DA1 = 110;
// 连接对象
OperateResult connect = omronFinsNet.ConnectServer( );
if (!connect.IsSuccess){
Console.WriteLine( "connect failed:" + connect.Message );
return;
}
// 举例读取D100的值
short D100 = omronFinsNet.ReadInt16( "D100" ).Content;
omronFinsNet.ConnectClose( );