连接PLC:
MelsecFxSerial Fx3U = new MelsecFxSerial();
private void button1_Click(object sender, EventArgs e)
{
Fx3U.SerialPortInni(sp =>
{
sp.PortName = uiComboBox1.Text;
sp.BaudRate = 9600;
sp.DataBits = 7;
sp.StopBits = System.IO.Ports.StopBits.One;
sp.Parity = System.IO.Ports.Parity.Even;
Fx3U.Open();
MessageBox.Show("成功","连接设备", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
button1.Enabled = false;
button1.BackColor = System.Drawing.Color.White;
});
//输入继电器:"X10", "X17" 字符串为八进制机制
//内部继电器:"M100", "M200" 字符串为十进制
//数据寄存器:"D100", "D200" 字符串为十进制
//计数寄存器:"C100" , "C200" 字符串为十进制
//定时寄存器:"T100" , "T200" 字符串为十进制
}
读取D100的数据:
private void uiButton1_Click(object sender, EventArgs e)
{
ushort[] ushort_D100 = Fx3U.ReadUInt16("D100", 1).Content; //读D1000的ushort值一个数值
ushort value = ushort_D100[0];
textBox1.Text = value.ToString();
}
写入D100的数据:
private void uiButton2_Click(object sender, EventArgs e)
{
try
{
ushort valueToWrite = (ushort)short.Parse(textBox2.Text);
Fx3U.Write("D100", valueToWrite);// 写入D1000 ushort值
}
catch
{
MessageBox.Show("请输入正确的数值");
}
}
控制M100通断:
private bool State = false; // 初始状态为关
private void button5_Click(object sender, EventArgs e)
{
//如果需要判断是否读取成功
OperateResult write1 = Fx3U.Write("M100", true);
if (write1.IsSuccess)
{
State = !State; // 切换M100寄存器状态
if (State)
{
button5.BackColor = Color.Green; // 开时显示绿色
}
else
{
button5.BackColor = Color.Red; // 关时显示红色
}
Fx3U.Write("M100", State); // 将新的状态写入M100寄存器
}
else
{
MessageBox.Show("打开失败");
}
}
#头条文章养成计划##冬日生活打卡季#