Winform程序控制网络继电器(康耐德,泥人..)运用Socket,TCP协议

//继电器官网查看命令
https://www.konnad.com/service/download/product-model/sdd4040-ad3
static byte[] DOON = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0x05, 0x00, 0x64, 0xFF, 0x00 };//控制继电器打开(DO-1灯亮)
static byte[] DOOFF = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0x05, 0x00, 0x64, 0x00, 0x00 };//控制继电器关闭(DO-1灯灭)

//按钮事件执行Demo:产品烘烤48h报警
private void bt_bake_Click(object sender, EventArgs e)
{
//烘烤中,sysdate-start_time > 48h(2880min)---需要报警
string sql = "";
sql = "select sajet.bake_time1 result from dual";
//数据库中function:bake_time1

点击查看代码
CREATE OR REPLACE FUNCTION bake_time1 RETURN VARCHAR IS
--烘烤中,sysdate-start_time > 48h(2880min)---需要报警
v_result VARCHAR2(100);
v_cnt NUMBER;--大於48h的烘烤笔数
BEGIN
v_result := 'OK';
select count(1)
into v_cnt
from Bake_Master--烘烤表
where 1 = 1
and status='0'
and 2880-round((sysdate-start_time)*24*60,0) <= 0;
IF v_cnt > 0 THEN
v_result := 'NG';
END IF;
return v_result;
END;
DataTable dt_count = DBHelp.Get_DataTable(DBHelp.ConnMES, sql);
if (dt_count.Rows[0][0].ToString() == "NG")
{
MessageBox.Show("烘烤时间已过48H!!!");
StreamWriter writer = File.AppendText(@"E:\bake.txt");
writer.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " 烘烤报警!!!");
writer.Close();
sendSignal(1, "网络继电器IP地址", DOON);
}
else
{
MessageBox.Show("报警解除!!!");
StreamWriter writer = File.AppendText(@"E:\bake.txt");
writer.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " 烘烤报警已解除!");
writer.Close();
sendSignal(1, "网络继电器IP地址", DOOFF);
}
}
//Socket通讯
public static void sendSignal(int status, string strip, byte[] cmd)
{
try
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ip = IPAddress.Parse(strip);
IPEndPoint ipe = new IPEndPoint(ip, 502);//默认端口
s.Connect(ipe);
s.Send(cmd);
s.Close();
}
catch (Exception)
{
//throw ;
}
}
posted @   txtspring  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示