C#上位机序列5: 三菱通信(FX-3U SerialOverTcp)

C#上位机序列1: 多线程(线程同步,事件触发,信号量,互斥锁,共享内存,消息队列)

C#上位机序列7: 分库分表

C#上位机序列8: 数据库同步

C#上位机序列9: 批量读写+事件广播+数据类型处理

C#上位机序列10: Winform上位机通用框架

 

 

设备信息

 

测试结果

D值测试

 Y值写入后读取测试

  

 

 

 

一、注意事项

 

1. 每次给PLC发送指令后,必须等待PLC的应答完成才能发送下一条指令;

 

2. 报文都是十六进制ASCII码的形式

 

3. 相关指令

 

 

 

指令 命令码(ASCII码) 操作原件

 

0(30H) X,Y,M,S,T,C,D

 

1(31H) X,Y,M,S,T,C,D

 

置位 7(37H) X,Y,M,S,T,C

 

复位 8(38H) X,Y,M,S,T,C

 

 

 

二、通信格式

 

读指令

 

请求:STX(1) + CMD(1) + Address(4) + Length(2) + ETX(1) + SUM(2,从cmd到etx)

 

PLC响应:STX(1) + 值(n字节) + ETX(1) + SUM(2)

 

 

 

写指令

 

请求:STX(1) + CMD(1) + Address(4) + Length(2) + Data(4*n)+ ETX(1) + SUM(2,从cmd到etx)

 

PLC响应:STX(1) + 值(1字节 正确:06H;错误:15H) + ETX(1) + SUM(2)

 

 

 

三、通信说明(Y类型)

 

 

 

地址换算规则

 

Y0 内部地址位 00A0->转ascii码 30 30 41 30 Y00/Y01/Y02/Y03/Y04/Y05/Y06/Y07,只是其中的一个位

 

Y1 内部地址位 00A1->转ascii码 30 30 41 31 同上

 

Y2 内部地址位 00A2->转ascii码 30 30 41 32 同上

 

 

 

读取Y0,范围(Y00-Y07) 

 

 

 

读取Y1,范围(Y10-Y17)

 

请求:02 30 30 30 41 31 30 31 03 36 36  

 

 

 

读取Y2,范围(Y20-Y27)

 

请求:02 30 30 30 41 32 30 31 03 36 37  

 

 

 

报文:读取Y0,范围(Y00-Y07)

 

请求:02 30 30 30 41 30 30 31 03 36 35

 

响应:02 32 30 03 36 35(32 30 -> 20H -> 转二进制 0010 0000 表示:5亮 )

 

响应:02 36 30 03 36 39(36 30 -> 60H -> 转二进制 0110 0000 表示:5,6亮 )

 

 

 

报文:写入bool(设置Y006 1

 

请求:02 37 30 36 30 35 03 30 35

 

响应:06

 

 

 

报文:写入bool(设置Y006 0)

 

请求:02 38 30 36 30 35 03 30 36

 

响应:06

 

 

 

四、通信说明(D类型)

 

 

 

地址换算规则

 

D123 地址为: address = 123*2 + 4096 = 4342 = 10F6 -> 转ascii码 31 30 46 36  

 

 

 

报文:读取D123 short类型(2个字节)

 

请求:02 30 31 30 46 36 30 32 03 37 32

 

响应:02 30 30 30 30 03 43 33 -- 值为0

 

响应:02 30 31 30 30 03 43 34 -- 值为1

 

 

 

 

 

报文:写入D123 short类型(2个字节),值1

 

请求:02 31 31 30 46 36 30 32 30 31 30 30 03 33 34

 

响应:06

 

posted @ 2023-08-09 12:48  CHHC  阅读(352)  评论(0编辑  收藏  举报