




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.最近做一个PC通过编程口与F*PLC通讯的程序,在网上找好久,内部软元件的地址还是找不全。没方法,只好使用串口监视软件分析G*DeveloperPLC编程软件发送的代码由于没有存放器类型信息,所以地址的计算十分关键,如D100和M100分别对应哪个地址呢?下面就是三菱F*系列PLC地址对应表:
PublicConstPLC_D_Base_AddRess=4096
PublicConstPLC_D_Special_Base_AddRess=3584
PublicConstPLC_Y_Group_Base_AddRess=160
PublicConstPLC_PY_Group_Base_AddRess=672
PublicConstPLC_T_Group_Base_AddRess=192
PublicConstPLC_OT_Group_Base_AddRess=704
PublicConstPLC_RT_Group_Base_AddRess=1216
PublicConstPLC_M_SINGLE_Base_AddRess=2048(命令为7或8时)
PublicConstPLC_M_Group_Base_AddRess=256
PublicConstPLC_PM_Group_Base_AddRess=768
PublicConstPLC_S_Group_Base_AddRess=0
PublicConstPLC_*_Group_Base_AddRess=128
PublicConstPLC_C_Group_Base_AddRess=448
PublicConstPLC_OC_Group_Base_AddRess=960
PublicConstPLC_RC_Group_Base_AddRess=1472
PublicConstPLC_TV_Group_Base_AddRess=2048
PublicConstPLC_CV16_Group_Base_AddRess=2560
PublicConstPLC_CV32_Group_Base_AddRess=3072
当我们用DEVICEREAD命令时,D100地址=100*2+4096;M100地址=100+256;不同的是D类型存放器存放的是字,M存放器存放的是位,同样是读两个字节,D100返回的就是PLC中D100地址的值,M类型存放器返回的是M100到M116的值。所以当我们用FORCEON命令时,M100存放器地址=100+2048;
这也没有什么复杂的,不是吗?可是三菱公司好似不甘于如此,FORCEON/Off命令中地址排列与DEVICEREAD/WRITE不同,是低位在前高位在后。如Y20,地址是0510H,代码中4个字节地址表示为:1005。〔注意:Y存放器为八进制,如Y20地址=16+1280=0510H〕三菱F*系列PLC编程口通信协议总览
该协议实际上适用于PLC编程端口以及F*-232AW模块的通信。感谢网友visualboy提供。
通讯格式:
命令命令码目标设备
DEVICEREADCMD"0"*,Y,M,S,T,C,D//设备读DEVICEWRITECMD"1"*,Y,M,S,T,C,D//设备写
FORCEONCMD"7"*,Y,M,S,T,C//置位
FORCEOFFCMD"8"*,Y,M,S,T,C//复位
传输格式:RS232C
波特率:9600bps
奇偶:even
校验:累加方式〔和校验〕
字符:ASCII
16进制代码:
ENQ05H请求
ACK06HPLC正确响应
NAK15HPLC错误响应
ST*02H报文开场
ET*03H报文完毕帧格式:
ST*CMDDATA......DATAET*SUM(upper)SUM(lower)
例子:
ST*,CMD,ADDRESS,BYTES,ET*,SUM
02H,30H,31H,30H,46H,36H,30H,34H,03H,37H,34H
SUM=CMD+......+ET*;
30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超过两位取低两位
命令格式
1、DEVICEREAD〔读出软设备状态值〕
计算机向PLC发送:
始命令首地址位数终和校验
ST*CMDGROUPADDRESSBYTESET*SUM
例子:从D123开场读取4个字节数据
02h30h31h,30h,46h,36h30h,34h03h37h,34h
地址算法:address=address*2+1000h
再转换成ASCII
31h,30h,46h,36h
PLC返回
ST*1STDATA2NDDATA.....LASTDATAET*SUM
注:最多可以读取64个字节的数据
例子:从指定的存储器单元读到3584这个数据
02h33h35h38h34h03h44h,36h
2、DEVICEWRITE〔向PLC软设备写入值〕
始命令首地址位数数据终和校验
ST*CMDGROUPADDRESSBYTES1STDATA2NDDATA......LASTDATAET*SUM
例子:向D123开场的两个存储器中写入1234,ABCD
02h31h31h,30h,46h,36h30h,34h33h,34h,31h,32h,43h,44h,41h,42h03h34h,39h
PLC返回
ACK(06H)承受正确
NAK(15H)承受错误
3、位设备强制置位/复位
FORCEON置位
始命令地址终和校验
ST*CMDADDRESSET*SUM
02h37haddress03hsum
FORCEOFF复位
始命令地址终和校验
ST*CMDADDRESSET*SUM
02h38haddress03hsum
PLC返回
ACK(06H)承受正确
NAK(15H)承受错误
设备强制中的地址公式:Address=Address/8+100h
说明:
1.帧中的BYTES表示需要读取或者写入的字节数。
2.地址算法上有说明。
3.累加和是从ST*后面一个字节开场累加到ET*的和。
通过串口监视得到的数据如下:PLC型号:F*0N
使用G*Developer的在线-调试-软元件测试功能以以下出不同的操作发送的不同内容,前面一段是He*码后面一段是对应的ASCII码
//////////////////////////////////CMDONYO//////////////////
023730303035034646.70005.FF
//////////////////////////////////CMDOFFYO/////////////////////
023830303035033030.80005.00//////////////////////////////////CMDONY1////////////////////
023730313035033030.70105.00
//////////////////////////////////CMDOFFY1//////////////////
023830313035033031.80105.01
//////////////////////////////////CMDON*O//////////////////
023730303034034645.70004.FE
//////////////////////////////////CMDOFF*O/////////////////////
023830303034034646.80004.FF//////////////////////////////////CMDON*1//////////////////
023730313034034646.70104.FF
//////////////////////////////////CMDOFF*1//////////////////
023830313034033030.80104.00//////////////////////////////////CMDONT0//////////////////
023730303036033030.70006.00
//////////////////////////////////CMDOFFT0//////////////////
023830303036033031.80006.01//////////////////////////////////CMDONT1//////////////////
023730313036033031.70106.01
//////////////////////////////////CMDOFFT1/////////////////
023830313036033032.80106.02
//////////////////////////////////CMDONC0//////////////////
023730303045033046.7000E.0F
//////////////////////////////////CMDOFFC0//////////////////////
023830303045033130.8000E.10//////////////////////////////////CMDONC1//////////////////
023730313045033130.7010E.10
//////////////////////////////////CMDOFFC1//////////////////////
023830313045033131.8010E.11
//////////////////////////////////CMDONM0//////////////////
023730303038033032.70008.02
//////////////////////////////////CMDOFFM0//////////////////////
023830303038033033.80008.03//////////////////////////////////CMDONM1//////////////////
023730313038033033.70108.03
//////////////////////////////////CMDOFFM1//////////////////////
023830313038033034.80108.04//////////////////////////////////CMDONS0//////////////////
023730303030034641.70000.FA
//////////////////////////////////CMDOFFS0//////////////////////
023830303030034642.80000.FB//////////////////////////////////CMDONS1//////////////////
023730313030034642.70100.FB
//////////////////////////////////CMDOFFS1//////////////////////
023830313030034643.80100.FC//////////////////////////////////CMDWRITED015AB16Bit/////////////////
02313130303030324142313503.1100002AB15.
343040
//////////////////////////////////CMDWRITED115AB15AB32Bit/////////////////
02313130303030344142313541.1100004AB15A
423135033242B15.2B//////////////////////////////////CMDWRITET015AB16Bit/////////////////
02313038303030324142313503.1080002AB15.
343747
//////////////////////////////////CMDWRITET115AB15AB32Bit/////////////////
02313038303030344142313541.1080004AB15A
423135033332B15.32//////////////////////////////////CMDWRITEC015AB16Bit/////////////////
02313041303030324142313503.10A0002AB15.
353050
//////////////////////////////////CMDWRITEC115AB15AB32Bit/////////////////
02313041303030344142313541.10A0004AB15A
423135033342B15.3B
以上是用F*-0NPLC时的情况,从上面的数据很容易分析出内部软元件的地址,有趣的是在换成F*-1N时发现有所不同F*-1NPLC
以以下出不同的操作发送的不同内容
//////////////////////////////////CMDONYO//////////////////
02453730303043033532.E7000C.52
//////////////////////////////////CMDOFFYO/////////////////////
02453830303043033533.E8000C.53//////////////////////////////////CMDONY1////////////////////
02453730313043033533.E7010C.53
//////////////////////////////////CMDOFFY1//////////////////
02453830313043033534.E8010C.54
//////////////////////////////////CMDON*O//////////////////
02453730303132033432.E70012.42
//////////////////////////////////CMDOFF*O/////////////////////
02453830303132033433.E80012.43//////////////////////////////////CMDON*1//////////////////
02453730313132033433.E70112.43
//////////////////////////////////CMDOFF*1//////////////////
02453830313132033434.E80112.44//////////////////////////////////CMDONT0//////////////////
02453730303130033430.E70010.40
//////////////////////////////////CMDOFFT0//////////////////
02453830303130033431.E80010.41//////////////////////////////////CMDONT1//////////////////
02453730313130033431.E70110.41
//////////////////////////////////CMDOFFT1/////////////////
02453830313130033432.E80110.42
//////////////////////////////////CMDONC0//////////////////
02453730303046033535.E7000F.55
//////////////////////////////////CMDOFFC0//////////////////////
02453830303046033536.E8000F.56//////////////////////////////////CMDONC1//////////////////
02453730313046033536.E7010F.56
//////////////////////////////////CMDOFFC1//////////////////////
02453830313046033537.E8010F.57
//////////////////////////////////CMDONM0//////////////////
02453730303030033346.E70000.3F
//////////////////////////////////CMDOFFM0//////////////////////
02453830303030033430.E80000.40//////////////////////////////////CMDONM1//////////////////
02453730313030033430.E70100.40
//////////////////////////////////CMDOFFM1//////////////////////
02453830313030033431.E80100.41//////////////////////////////////CMDONS0//////////////////
02453730303134033434.E70014.44
//////////////////////////////////CMDOFFS0//////////////////////
02453830303134033435.E80014.45//////////////////////////////////CMDONS1//////////////////
02453730313134033435.E70114.45
//////////////////////////////////CMDOFFS1//////////////////////
02453830313134033436.E80114.46
//////////////////////////////////CMDWRITED015AB16Bit/////////////////
024531303430303030324142313503.E10400002AB15.
4238B8
//////////////////////////////////CMDWRITED115AB15AB32Bit////////
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁轨道交通职业学院《分子生物学4》2023-2024学年第二学期期末试卷
- 济南2025年山东济南市钢城区所属事业单位招聘初级综合类岗位26人笔试历年参考题库附带答案详解-1
- 绵阳飞行职业学院《消化系统疾病》2023-2024学年第二学期期末试卷
- 成都医学院《DesignofStructures》2023-2024学年第二学期期末试卷
- 青岛电影学院《作物育种学总论》2023-2024学年第二学期期末试卷
- 河源广东河源市消防救援支队2025年第一批政府专职消防员招聘86人笔试历年参考题库附带答案详解
- 动物炭黑、动物胶及其衍生物项目效益评估报告
- 沈阳工业大学《药用作物栽培学》2023-2024学年第二学期期末试卷
- 2025届高考语文补充背诵诗词:《青玉案·元夕》教学设计
- 南京视觉艺术职业学院《Java应用设计案例》2023-2024学年第二学期期末试卷
- 新质生产力课件
- 传播学研究方法
- 1.1公有制为主体 多种所有制经济共同发展 课件-高中政治统编版必修二经济与社会
- 青春期的妇科知识讲座
- 《社区康复》课件-第三章 社区康复的实施
- 中职生心理健康教育全套教学课件
- JC-T 2704-2022 聚酯纤维装饰吸声板
- WTE朗文英语2B 单词卡片
- 初三物理复习计划详细计划
- 汽车悬架概述
- 心房颤动的教学查房课件
评论
0/150
提交评论