基恩士PLC KV7000,8000还是比较好用的,那如何和上位机通讯,我把源码写出来了。采用上位链路通讯,基恩士官方给我们留了8501端口,这个端口有意思刚好是我生日。基恩士的资料我觉得做的特别好,能快速写源代码得益于官方资料特别详细,对了,他的通讯采用是ASCII码直接通讯。比如你读到的ASCII码是666,那他的实际值也就是666。好了上代码,如果热度比较高,大家有不清楚的地方,我出视频讲解。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net.Sockets;using System.Threading;using System.Net;namespace WDBaseCommuntionHelper{ public class KV7_8000Service { Socket KVTCPClicent; readonly object LockKVTCP = new object(); public enum DataType { /// /// 16位无符号 /// U, /// /// 16位有符号 /// S, /// /// 32位无符号 /// D, /// /// 32位有符号 /// L, /// /// 16位16进制数 /// H, /// /// 默认 /// N } #region 命令 /// /// 更改模式 /// const string Command1 = "M"; /// /// 清除错误 /// const string Command2 = "ER"; /// /// 检查错误编号 /// const string Command3 = "?E"; /// /// 查询机型 /// const string Command4 = "?K"; /// /// 检查运行模式 /// const string Command5 = "?M"; /// /// 时间设定 /// const string Command6 = "WRT"; /// /// 强制置位 /// const string Command7 = "ST"; /// /// 强制复位 /// const string Command8 = "RS"; /// /// 连续强制置位 /// const string C