哈喽,大家下午好呀~

今天给大家带来200SMART的MODBUSRTU通信。

西门子S7系列的PLC,有S7-200/300/400S7-200SMARTS7-1200/1500

如果经常接触项目的话,大都了解,S7-200型号的PLC已经彻底停产了,西门子使用了200SMART来代替,而200SMART的用法和200基本上是差不多的,但是200smart多了以太网功能,这也是现在的主流。

之所以这篇文章还来介绍200SMART的通信,主要还是国内现在大部分的小型单机项目,还是会经常使用到它;

这其中,200SMART的通信和运动控制这两大功能,几乎是必用的。

下面我们就用一个简单的例子,为大家演示下smart的MODBUSRTU通信。

例:200smart与200smartPLC做MDOBUSRTU通信。

具体什么是通信,这里就不过多讲解了,我们直接看指令的介绍。

打开200SMART软件STEP7-MicroWIN SMART,点开“库”,可以看到“ModbusRTU Master”有两个指令文件夹;

MBUS_CTRL和MB_CTRL2具有相同的作用和参数。MBUS_CTRL用于单个ModbusRTU 主站。MB_CTRL2用于第二个ModbusRTU 主站。相应地,MBUS_MSG和MBUS_CTRL一同用于单个ModbusRTU 主站。MB_MSG2和MB_CTRL2一同用于第二个ModbusRTU 主站。

MBUS_CTRL:主站定义参数

MBUS_MSG:主站读写指令

MBUS_INIT:从站定义参数

MBUS_SLAVE:从站应答指令

硬件上:

图中,若使用编号1处的端口,选用第一个文件夹内的指令,

使用编号2处的信号板,选用第二个文件夹内的指令,

首先,我们调用MBUS_CTRL指令(主站定义参数),CTRL指令引脚:

EN:使能,一直为ON;

Mode:模式,1=modbus,0=PPI;

Baud:波特率,9600,19200等;

Parity:奇偶校验;0=无校验,1=奇校验,2=偶校验;

Port:端口;0=端口0,1=端口1。

Timeout:通信超时,1ms到32767ms 之间的任何值;典型值是1000ms (1 s),一般要足够大,让从站有足够的反应时间;

Done:完成位;

Error:错误字节。

(注意:MBUS_CTRL指令,要写在主站里,一个主站只要写一条即可。波特率和奇偶校验要与从站的设定一致。)

MBUS_MSG(主站读写指令)

EN,使能一直为1;

First,触发,使用沿指令;

Slave,从站地址;

RW,读写;0读,1写;

Addr,从站的数据区:

00001-09999,表示Q点;

0001至19999,表示I点;

30001至39999,表示模拟量输入;

40001至49999和400001至465535,V存储区或者其他的设备的数据区。

Count,是个数;

DataPtr,主站的数据区;如果RW处是写,则是把该引脚处数据写到从站,如果RW处是读,则是把从站数据读到该引脚处;必须使用指针符号(&)

(Done和Error,就不在重复介绍了,在F1帮助里有介绍)

讲下,这里我们填写的Slave从站站号是3,是因为主站的地址我们默认为2。

在这里我们还需要再设置下主站和从站plc上电就处于RUN状态;

这样设置好后,当我们在调试的时候,只要给两台plc上电,那么它们就会自动执行通信。

然后是从站设置:


MBUS_INIT(从站定义指令)

EN,使能,SM0.1,初始化;

Mode,模式;1=启用modbus,0=不启用modbus;

Addr,从站地址;(这里填3,上面有图)

Baud,波特率;

Parity:奇偶校验;

Port,端口0或者1;

Delay:延时,默认为0,表示立即应答;

MaxIQ:最大IQ存储区;

MaxAI:模拟量输入映像区;

MaxHold:可访问的V存储器中的字保持寄存器数;

HoldStart:存储器中保持寄存器的起始地址;


从站应答指令(MBUS_SLAVE)

成后,将程序各自下载到对应的主站plc和从站plc里,可以试下断电启动;这时,因为主站是写功能,地址是IB0,也就是I0.0-I0.7,与之对应的从站地址是1,所以,I0.0控制Q0.0,以此类推。

举报/反馈

常州智控教育PLC培训

11万获赞 3.9万粉丝
专注PLC、工业机器人职业技能发展提升
智控教育官方账号
关注
0
0
收藏
分享