新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个圈里的是通讯过程中传送的Asc码,包含了PLc的站号地址、指令、起始符等内容,具体要看你的PLc通讯协议。通讯与开关量是两回事,你得补习下与通讯相关的内容。
创新互联建站是一家专注于成都网站制作、成都网站设计与策划设计,富平网站建设哪家好?创新互联建站做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:富平等地区。富平做网站价格咨询:13518219792
12601, 转换成16进制是3139,16进制 ASC吗31对应字符1, 39对应9。 后面的用这个思路去转换就对上了。
0001 2569这两个应该是和格式相关的字符。0001一般就是开始的意思。
一个变量包含两个字符,转换算法如下。
1。 取高位字符,除以H100, H是VB中16进制表示法。 除以H100效果是右移8位。 位了保险起见,再和H00FF做与运算,保证取得的ASC码是合法的。
2。取低位字符,与H00FF做与运算,去掉高位数据,剩下的就是低位ASC码。
3。将ASC码转换为字符,用CHR函数即可,然后连接所有的字符即可得String
读取的是什么PLC? CCLINK一般做不到你提出的这个需求的。
VB.NET中是可以监控PLC中的数据的,要知道PLC的通讯协议就可以监控了。
a = (":010612000020C70D0A")'这里肯定有问题
括号必须在引号里面,不然编译不过的
你的问题是没有发送确认符,一般串口指令末尾都有换行确认符vbCr,下位机接收到vbCr后才认为是一条完整指令,改成下面的试验
Dim a As String = ":010612000020C70D0A" vbCr