三菱PLC-FX编程口通信协议及通信实操
很多控制都采用FX系列PLC,也非常简单易学。但如果说,我们想用上位机与PLC通信,好不好弄呢?比如VB,LabView,再简单点:串口助手。FX编程口协议没有公开,最近做了个CB与FX3U的系统,所以和大家分享一下。
CB软件界面涉及公司机密,就不便放出来给大家看,用串口调试助手V2.1代替,一样的道理。关于上位机的学习,大家可以网上下载点资料来参考。下面就给出整个测试过程,并对部分协议地址做详尽的见解。
准备:FX3U(FX系统的均可)、串口调试助手V2.1、SC-09通信线(或者SC-09-USB,我用的是SC-09-USB,因为串口助手帮我们完成USB转串口这部分,如果用VB或其他上位机通信,需要用SC-09通信线,要求电脑有DB9串口)
串口助手
FX-PLC
SC-09-USB通信线
SC-09-DB9通信线
用SC-09-USB通信线一头连接电脑、一头连接编程口
一、通信传输格式设置
1位起始位、7位数据位、偶校验、1位停止位,波特率9600,传输字符格式为ASCII码。所以串口助手COM设置如下(PLC不用设置):
一、通信指令
PLC只能对上位机发出的指令做回答,不能主动命令上位机。编程口通信有4条指令,代码分别如下:
PLC收到上位机指令后,做出回答如下
二、通信格式
三、元件地址
那地址是怎么得来的呢?其实是可以查表得来。
表格1 只列出部分位元件的地址
定时器T、计数器C的地址,大家可以去网上收集资料,后面我测试没用到这些类型的元件,所以就没有列出这些地址表。下面给出寄存器D的地址值,范围是D0-D511,给出框架,可按规律自己补齐地址。
表格2 一般寄存器D的部分元件地址表
适用强制(置位,复位)指令是适用的地址与表格1是不一样的,这点要注意。为了大家更加清楚,下面给出Y、M置位/复位的元件地址,其他的S、X、T、C这部分地址,网上自己搜搜。
表格2 强制Y、强制M的部分位元件地址表
四、通信实操
将写好的PLC程序灌入PLC中,测试PLC程序如下:
GX Work2创建的测试程序
上电,RUN,PLC的状态如下:
只有Y31的状态为1,其余的为0
1、通信测试
串口助手发送05h,PLC回复06h,则连接正常。若回复15h,则下位机不存在。
(注意:在串口助手与PLC通信过程中,请确认GX Work2已关闭工程)
通信正常
2、写指令(CMD内容为31h)
实操:使Y0~Y7的状态为 0 1 0 1 1 0 1 0 (16进制为5A,转为ASCII码为35h 41h)
使Y0~Y7的状态为 0 1 0 1 1 0 1 0 的指令格式
串口助手发送如下:
PLC状态如下:
Y0-Y7的指示灯,符合预期
PLC回复状态如下:
3、读指令(CMD内容为30h)
实操:读取D11、D12的值。(D11含2个字节,D12含2个字节,共4个字节)
读取D11、D12的值的指令格式 D11、D12的值以16进制显示
D11、D12现值(16进制):0BC3、01FA。从上图的分析,可知,已经正确从PLC读取D11 D12的值。
4、强制ON指令(CMD内容为37h)&&强制OFF指令(CMD内容为38h)
实操1:强制M0为ON
强制M0为ON的指令格式
实操2:强制M0为OFF
强制M0为OFF的指令格式
PLC和电脑使用串口通讯?这么做很方便!
最近有好朋友问我,为什么我用PLC写的232/485通讯程序不好用?我应该怎么测试是哪出现了问题?正好我最近写了一个西门子S7-200smart利用RS485进行自由口通讯向电脑发送状态的小程序,在这里和大家分享一下。
以前我们讲过,一些电子称具备RS232/485接口,可以与PLC进行通讯,那么除了这个功能,它还可以干什么?
PPI协议是西门子自己的协议,为自己的设备做连接用的。
我们重点说下自由口通讯,自由口通讯不限设备的限制,只要是支持RS485/232通讯的,不论是不是西门子的都可以使用。比如说不同PLC之间的通讯读写数据,以及和一些驱动器做通讯读写数据或者是给电脑端读写数据。
今天我们了解一下如何使用西门子S7-200SMART使用RS485端口与电脑进行通讯并调试。
首先S7-200SMART自带一个485接口,还可以拓展一个485接口,需要在硬件里配置波特率。
硬件连接需要一个PLC,一个485转232的转换器,以及一台带串口的电脑或者笔记本加串口转USB,以及串口调试工具。
西门子S7-200SMART PLC
485转232转换器(电脑侧是232)注意线序不要接错了,接错后依然有数据,只是数据是反的。
电脑端口
编程时需要配置接口信息,比如说用哪个接口发送,通讯参数是多少等等。
S7-200smart 可接两RS485口
通讯参数是特殊存储器SMB30(端口0)和SMB130(端口1)
端口设置
假如需要传输的数据是(波特率9600,无奇偶效验,数据位8,停止位1),数据从端口0传输,那么将9赋值给SMB30。
然后我们看下发送和接收指令,XMT和RCV,这两个指令需要注意的是;
1 指令需要以脉冲形式触发。
2发送或者接受的第一个字节的含义是你要发送的字节总字数。且不包含第一个。比如说我发送从VB801-VB876,所以发送地址需要写VB800,且VB800赋值为76。
主程序
程序解析;因为协议是“波特率9600,无奇偶效验,数据位8,停止位1”利用端口1进行通讯,利用脉冲触发XMT。
最后我们下载程序并触发脉冲,那么怎么进行调试呢?我们需要串口调试工具,本文用到的串口调试工具是作者从业多年用的最好的一款,绿色无需安装,且没有BUG,打开软件后,我们打开COM口,即可接收数据,还可以看到数据的总量,非常方便.想要小工具的可以关注并私信我;“串口调试工具”。
当然如果想发送让PC识别的语言的话,需要借助ASC码来帮助,这个码,大家可以去网上查找,即是通过用计算机容易发送的数字来表示字母;(比如说A在码中以16进制数字41代替,Z在码中以16进制数字5A代替)通过这个转换,PLC终于可以按照人的意愿和PC对话了,但要切记,通讯过程中的字与字之间最好用分隔符分开,而且安全起见,最后一位可以通过程序做效验。
对于一些复杂的自由口通讯协议,比如说松下伺服驱动器等涉及精度,复杂功能或者安全等,需要多次读写发送来验证是否通讯有效,这就需要中断来帮助,在这里对于端口0发送完成的标志是中断事件9,端口1发送完成的标志是中断事件26,对于端口0接收完成的标志是中断事件23,端口1接收完成的标志是中断事件24。
相关问答
plc怎么加串口指令?
GXDeveloper:在线——通讯设置GXDeveloper:在线——通讯设置
串口是什么,现在的PC机一般有几个串行口?
串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不...
如何实现labview和西门子s7-200plc串口通信?
1、如果使用自由口通信,那要PLC端向串口写数据,才能在串口收到数据本身PLC是不主动向串口发消息的2、要么用PLC本身的PPI协议,要么用modbus协议1、如果使用...
plc串口驱动怎么装?
安装PLC串口驱动的步骤如下:将USB线插在电脑上,在电脑的右下角会弹出扫描提示,一般自动安装会失败,需要手动安装。双击打开属性,选择驱动程序——更新驱动...
做plc编程笔记本没有网口?
原因是plc和某些设备需要串口通讯了。plc虽然带网口,可以下载程序,连接电脑,连接hmi之类的,但是某些设备没有网口,是不能连plc的,这时候plc就需要配这个设...
PLC编程电脑接口有什么要求?-ZOL问答
你用的是什么牌子的PLC一般的串口都是用9针RS-232的,也有直接用USB连接的,还可以将232接口转换成USB的,但是需要一个USB驱动程序,驱动了以后就可以用了COM0口...
plc串口坏了怎么办?
如果PLC的串口坏了,可以考虑以下步骤:检查连接:确保串口连接线、插头和接口没有问题,有时候问题可能仅仅是松动或接触不良。更换线缆:如果线缆损坏,尝...
西门子plc串口通信的方法有哪几种?_其他问答_系统粉
西门子PLC支持非常多的通讯方案:S7-200/200CN:基于CPU自身通讯端口的:PPI、MPI、自由口、USS、MODBUS;基于扩展模块的:MPI、PROFIBUS-DP、调制解调...
三菱fx2n通讯口的定义?
三菱FX2N通讯口是指可连接外部设备的通讯接口,如串口和以太网接口。通过这个接口,可以实现与上位机、其他PLC等设备之间的数据交换和远程监控控制功能。在编...
怎么才能把串口的数据读到PLC上呢?s7-200,rs485?
西门子PLC针对外部设备,使用串口通信时,协议为MODBUS,但通常为2种方式,1是PLC为主站,读取外部设备信号,比如变频器,温控器等,从网上下载西门子200PLC指令...