上位机和三菱FN2x通信实例

应项目需求需要使用上位机软件和三菱的PLC进行通信,C# 和PLC都是零基础,

C#的学习过程略,不难,学会空间就好

下面简述和PLC通信的关键步骤:

1、串口设置:

1) 串口线(三菱的422线)

2)串口工具

波特率:9600 (PLC是固定的)

奇偶检验:偶校验  (PLC固定的)

数据位:7 

停止位:1

2、通信测试

上位机:发送 0x05

PLC:回应0x06(正常)  返回0x15  说明指令无效,看看自己串口设置问题

3、获取x个点的当前状态

1)通信格式

读:

STXCMDx/y地址(4字节)读取几个字节EXT校验
0x02'0'读    /   '1'  写‘0’'0''A''0'‘0’‘2’0x03

‘6’

crc1

‘6’

crc2

固定值0x020x30 /0x310x300x300x410x300x300x32固定值0x360x36

 

注 : ‘A’ 直接 转asiic 码  放置的是字符  ‘9’-9= 0x30   ‘A’ - 0x0a = 0x31,此处要注意,运算的时候要区别对待

校验值计算:CMD+地址值+读取字节值+ext = 总和

 

 temp = 总和&0xff 

            a = ((temp >> 4) & 0x0f) > 9 ? ((temp >> 4) & 0x0f) + 7 : ((temp >> 4) & 0x0f);
            b = (temp & 0x0f) > 9 ? ((temp & 0x0f) + 7) : (temp & 0x0f);
            crc1= (byte) ( a + 0x30);
            crc2= (byte)( b + 0x30);

PLC返回:

错误返回:0x15

成功返回:

 

STX第一值第二值EXT校验
0x02‘3’'5''8''4'0x03

‘D’

crc1

‘7’

crc2

固定值0x020x330x35·0x380x34固定值0x440x37

第一值:

y7y6y5y4y3y2y1y0
00110101
35

 

第二值

y17y16y15y14y13y12y11y10
10000100
84

多字节的同理2字节的方式

写:

STXCMDx/y地址(4字节)读取几个字节第一值第二值EXT校验
0x02'   '1'  写‘0’'0''A'(Y地址)'0'‘0’‘2’‘3’‘5’‘8’‘4’0x03

‘6’

crc1

‘6’

crc2

固定值0x020x310x300x300x410x300x300x320x330x350x380x34固定值0x330x42

第一值:

y7y6y5y4y3y2y1y0
00110101
35

第二值:
 

y17y16y15y14y13y12y11y10
10000100
84


写入成功返回:0x06

写入失败返回:0x15

 

 

PLC寄存器个点的对应关系:

x:  0x0080

y:0x00a0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值