新闻详情

西门子S7-200Smart Modbus RTU通讯程序块介绍

发布时间: 2024-03-27
观看西门子S7-200Smart Modbus RTU通讯程序块介绍视频:

s7-200 smart cpu模块集成1个rs485接口,可以与变频器、触摸屏等第三方设备通讯。如果需要额外的串口,可通过扩展cm01信号板实现。信号板支持rs232/rs485自由转换。


串口协议支持:

modbus rtu

uss

自由口通讯


今天介绍200 smart作为主站进行rs485 modbus通讯。

1.打开编程软件

在左侧的项目树中找到“指令”->“库”->“modbus rtu master”,里面包含“mbus_ctrl”和“mbus_msg”两个指令。



注意:对于单个 modbus rtu 主站,使用指令 mbus_ctrl 和 mbus_msg。

     

对于第二个 modbus rtu 主站,使用指令 mbus_ctrl2 和 mbus_msg2。


在项目中需要使用两个modbus主站,需要确保mbus_ctrl 和 mb_ctrl2 使用不同的端口号。

2.初始化



baud 波特率:支持1200、2400、4800、9600、38400、57600、115200。波特率的设置必须与通讯设备的波特率一致。波特率越大,通讯速率越快,但通讯距离越短,受干扰的几率也越大,在通讯过程中常出现掉包现象。


parity 校验方式:0=无校验;1=奇校验;2=偶校验。校验方式的选择必须与通讯设备的校验方式一致。


port 端口号:0 = cpu 集成的 rs 485 通讯口 ;1 = cm 01 信号板。


timeout 超时:主站等待从站响应的时间,以毫秒为单位,一般设置为1000 毫秒,允许设置的范围为 1 - 32767。如通讯设备比较多,为加快其轮询速度,可将此时间缩小,但前提是保证从站能在此时间内,正常反馈数据。


done 标志位:初始化完成标志位,为1时说明初始化完成。


error 错误代码:0=无错误;1=校验错误;2=波特率错误;3=超时无效;4=模式错误;9=端口无效;10=cm 01 信号板缺失或未组态。

3.读写子程序



en:使能。同一时刻只能有一个读写功能。


first:读写请求位。每一个新的读写请求必须使用脉冲触发。


1:slave 从站地址:可选择的范围 1 - 247。理论上是可以通讯247台设备(仪表),但实际上与通讯的频率和数据长度是有很大关系的。


2:rw 读写请求:0=读请求;1=写请求。


3:addr 读写从站的数据地址:通讯的设备(仪表)都有通讯规约,对其数据地址都有定义。下图中参数地址都是16进制地址(其他的设备(仪表)参数地址也是16进制的),需要转化成十进制。100a转成十进制为4106,则读写地址即为40001+4106=44107;100b转成十进制为4107,则读写地址即为40001+4107=44108;100c转成十进制为4108,则读写地址即为40001+4108=44109;在以后换算过程中将40001视为常数,无论什么参考地址换算成十进制后都要加40001,因为40001是保持寄存器的起始地址。


4:count 数据个数:通讯的数据个数(位或字的个数)。上图中如只需读取100a,则count=1(字);如需读取100a、100b、100c,则count=3(字)。程序中是将读取的数据存储在vb100开始的35个字节中。


5:dataptr 数据指针:如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。


6:done 标志位:读写功能完成标志位。


7:error 错误代码:只有在 done 位为1时,错误代码才有效。0=无错误;1=响应校验错误;2=未用;3=接收超时(从站无响应);4=请求参数错误;5=modbus/自由口未使能;6=modbus正在忙于其它请求;7=响应错误(响应不是请求的操作);8=响应crc校验和错误;101=从站不支持请求的功能;102=从站不支持数据地址;103=从站不支持此种数据类型;104=从站设备故障;105= 从站接受了信息,但是响应被延迟;106=从站忙,拒绝了该信息;107=从站拒绝了信息;108=从站存储器奇偶错误。



展开全文

供应商
广东湘恒智能科技有限公司
联系电话
13510737515
手机号
13185520415
在线咨询QQ
1695606393
联系人
董海波
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
我们的新闻
咨询 在线询价 拨打电话