三菱FX3U利用RS指令实现Modbus RTU통신

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

三菱FX3U利用RS指令实现Modbus RTU通信
三菱FX3U利用RS指令实现Modbus RTU通信插图
在了解了Modbus통신的基本형식后,本期将通过仿真的방식实现Modbus RTU통신 프로토콜在三菱FX3U PLC上的적용。 指令介绍 一、软件准备 ●虚拟시리얼 포트도구 ●Modbus Slave ●凌一PLC仿真器 ●GX works2编程软件 二、RS指令 RS指令是在执行시리얼 포트통신时用来수신和보내기데이터的指令,使用该指令时需要在PLC上插入FX3U-485-BD통신模块。 1)基本형식
三菱FX3U利用RS指令实现Modbus RTU通信插图1
其中m(发生데이터的个数)和n(수신데이터的个数)需要根据外部设备的프레임형식指令,不能随便设置。 2)예제
三菱FX3U利用RS指令实现Modbus RTU通信插图2
X0:RS指令触发条件,当X0位ON时RS指令进入보내기或수신데이터的대기状态。 D10:보내기데이터的시작레지스터。 K8:보내기데이터的个数,表示每次보내기D10~D17范围内八个레지스터的데이터。 D20:수신데이터的시작레지스터。 K7:수신데이터的个数,表示将外部设备返回的데이터存入D20~D26范围内的七个레지스터里。 三、特殊辅助릴레이 1)M8161 데이터处理位数标志릴레이 当M8161=OFF时处理16位데이터。
三菱FX3U利用RS指令实现Modbus RTU通信插图3
当M8161=ON时处理低8位데이터。
三菱FX3U利用RS指令实现Modbus RTU通信插图4
2)M8122 데이터보내기标志릴레이 当RS指令处于보내기或수신데이터的대기状态时置位M8122,此时RS指令中보내기데이터레지스터里的데이터将会被보내기给外部设备。데이터보내기完成后系统会自动复位M8122,不能使用程序对其进行复位操作。
三菱FX3U利用RS指令实现Modbus RTU通信插图5
3)M8123 데이터수신标志릴레이 RS指令将데이터보내기完成后,进入수신데이터状态。此时M8123被置位为ON,并对수신到的데이터进行处理,데이터处理完成后需要将M8123复位为OFF,否则无法수신下一轮的데이터。
三菱FX3U利用RS指令实现Modbus RTU通信插图6
四、통신매개변수设置 통신매개변수既可以在PLC系统设置中直接设置,也可以通过改变D8120的值进行设置,两种设置방식任选一种即可(本文主要介绍通过D8120进行设置)。 1)直接设置 依次单击매개변수列表中的“PLC매개변수”→“PLC系统设置2” →勾选“进行통신设置”,然后根据实际需求设置통신매개변수,设置完成并检查无误后单击“设置종료”버튼저장设置。
三菱FX3U利用RS指令实现Modbus RTU通信插图7
2)通过D8120设置 根据下表给定的매개변수并结合实际需求设置b0~b15的值,并转换成16진수数传送给D8120,实现통신매개변수设置。
三菱FX3U利用RS指令实现Modbus RTU通信插图8
3)예제 将통신매개변수设置按如下要求进行设置:데이터길이为8位、짝수 패리티、정지 비트为1位、통신 속도为9600、无报头报尾,控制线为无프로토콜的RS-485인터페이스。
三菱FX3U利用RS指令实现Modbus RTU通信插图9
편집程序将매개변수传入D8120。
三菱FX3U利用RS指令实现Modbus RTU通信插图10
五、CRC指令 CRC指令的作用是계산Modbus RTU통신프레임的체크섬。
三菱FX3U利用RS指令实现Modbus RTU通信插图11
在低8位모드下(M8161=ON),当X0为ON时CRC指令계산出D10~D15六个레지스터产生的效验码,并将계산 결과的高八位存入D16,低八位存入D17。 指令运用 一、项目要求 按下X0버튼읽기1号슬레이브유지 레지스터40000的值,按下X1将100쓰기1号슬레이브유지 레지스터40002中,통신매개변수与上文예제中保持一致。 二、편집程序 1)初始化 在初始化程序中需要将M8161设置为处理低8位데이터모드(M8161=ON),将통신매개변수传入特殊레지스터D8120以及复位程序中用到的레지스터。
三菱FX3U利用RS指令实现Modbus RTU通信插图12
2)추가RS指令 如果每次处理的데이터길이一致,那么只需추가一次RS指,并且让RS指令一直处于대기보내기或수신데이터状。 보내기或수신的데이터길이需要根据外部设备的要求进行设置,此处外部设备为Modbus Slave,其프레임형식与표준프레임형식一致,所以此处보내기和수신的데이터길이分别为K8和K7。
三菱FX3U利用RS指令实现Modbus RTU通信插图13
3)편집읽기程序 a)계산읽기程序프레임 可以借助시리얼 포트디버깅 도우미自动生成프레임,其中84 0A为CRC 검증码。
三菱FX3U利用RS指令实现Modbus RTU通信插图14
b)편집프레임传送程序 当检测到X0的上升沿时将生成的프레임传入用来보내기데이터的레지스터D10~D15中。 프레임需要用16진수表示。
三菱FX3U利用RS指令实现Modbus RTU通信插图15
c)추가CRC指令 CRC指令将根据前六个프레임계산出체크섬,并将结果的高八位存入D16,低八位存入D17。
三菱FX3U利用RS指令实现Modbus RTU通信插图16
由于仿真中CRC指令时好时坏,所以本项目不使用CRC指令,而是将체크섬直接传入D16和D17。
三菱FX3U利用RS指令实现Modbus RTU通信插图17
d)보내기데이터 当检测到X0的下降沿时置位M8122完成데이터的보내기。
三菱FX3U利用RS指令实现Modbus RTU通信插图18
e)수신并处理읽기回来的데이터 슬레이브返回的데이터如同所示,通过分析프레임可得슬레이브返回的데이터高八位和低八位分别储存在D23和D24中。
三菱FX3U利用RS指令实现Modbus RTU通信插图19
三菱FX3U利用RS指令实现Modbus RTU通信插图20
通过계산把D23和D24的데이터合并,然后存放到D31中。
三菱FX3U利用RS指令实现Modbus RTU通信插图21
4)편집쓰기程序 a)편집프레임传送程序 参照읽기程序的편집방식。
三菱FX3U利用RS指令实现Modbus RTU通信插图22
三菱FX3U利用RS指令实现Modbus RTU通信插图23
三菱FX3U利用RS指令实现Modbus RTU通信插图24
b)보내기데이터
三菱FX3U利用RS指令实现Modbus RTU通信插图25
c)수신데이터 由于不需要수신슬레이브返回的데이터所以直接复位M8123。
三菱FX3U利用RS指令实现Modbus RTU通信插图26
仿真환경설정 一、추가虚拟시리얼 포트 需要추가两对虚拟시리얼 포트,一对用来实现GX works2和凌一PLC仿真器的연결,另一对用实现凌一PLC仿真器和Modbus Slave的연결
三菱FX3U利用RS指令实现Modbus RTU通信插图27
二、설정凌一仿真器 설정完成后需要열기下载口和开启扩展통신,并让PLC处于运行状态。
三菱FX3U利用RS指令实现Modbus RTU通信插图28
三、설정GX works2 其설정방식与연결实体PLC时的방식一致,主要选择포트号。设置完成后单击“통신测试”,测试成功后单击“确定”저장设置,并将程序下载到仿真器中。
三菱FX3U利用RS指令实现Modbus RTU通信插图29
四、설정Modbus Slave 1) 설정Modbus Slave연결 연결매개변수需要与D8120中的통신매개변수保持一致。
三菱FX3U利用RS指令实现Modbus RTU通信插图30
2)설정Modbus Slave슬레이브功能 如图所示设置슬레이브功能,并修改레지스터40000的值。
三菱FX3U利用RS指令实现Modbus RTU通信插图31
五、仿真演示 설정好仿真환경后,将程序下载到仿真器中,并进入监视状态。 1)읽기演示 单击仿真器中的X0버튼,观察D31的值是否与Modbus Slave中유지 레지스터40000设置的值一致。
三菱FX3U利用RS指令实现Modbus RTU通信插图32
2)쓰기演示 单击仿真器中的X1버튼,观察100是否被쓰기到슬레이브的유지 레지스터40002中。
三菱FX3U利用RS指令实现Modbus RTU通信插图33
六、程序整体浏览
三菱FX3U利用RS指令实现Modbus RTU通信插图34

2026年补充:FX5U与R시리즈PLC的Modbus통신方案对比

随着三菱FX3U逐步向FX5U和R시리즈换代,Modbus RTU통신的实现방식也有了变化:

PLC型号Modbus实现방식优势
FX3U + 485-BDRS指令(手动编程)灵活,适合定制化项目
FX5U 内置485MODBUS RTU专用指令编程简化50%,디버깅效率高
R시리즈C24시리얼 포트模块支持双通道独立통신

如果您正在做PLC型号迁移,modbus.cn提供三菱全시리즈Modbus통신기술문서,包括详细배선图和예제程序,欢迎查阅。

관련 글:PLC기술专栏 | 西门子PLC RS485통신 | 西门子1200 S7通讯

실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

《“三菱FX3U利用RS指令实现Modbus RTU통신”》 有 1 条评论

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注