S7-200-MODBUS通讯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,根据查询到的资料,P1口只能做主站,P0口既可做主站,也可以做从站
2,安装好的S7-200编程软件一般是不带库的,所以需要从网上下载MODBUS库,然后才能做Modbus通讯的子站,压缩包直接点安装后,库文件就安装到了编程软件里面了
3,P1口不能做从站
4,西门子S7200做Modbus从站需要使用MBUS_INIT、MBUS_SLAVE即可。
MBUS_INIT指令被用于启用和初始化或禁止Modbus通讯。
在使用MBUS_SLAVE指令之前,必须正确执行MBUS_INIT指令。
指令完成后立即设定"完成"位,才能继续执行下一条指令。
在每次扫描且EN输入打开时执行该指令。
应当在每次通讯状态改变时执行MBUS_INIT指令。
因此,EN输入应当通过一个边缘检测元素用脉冲打开,或者仅在首次扫描时执行。
"模式"输入数值选择通讯协议:输入数值1将端口0指定给Modbus协议并启用协议;将输入数值0指定给PPI,并禁用Modbus协议。
"波特"参数将波特率设为1200、2400、4800、9600、19200、38400、57600或115200。
"地址"参数将地址设为1和247之间(包括1和247)的数值。
"校验"参数被设为与Modbus主设备校验相匹配。
可承受的数值为:
*0-无校验
*1-奇数校验
*2-偶数校验
"时延"参数通过将指定的毫秒数增加至标准Modbus信息超时的方法延长标准Modbus信息完毕超时条件。
该参数的典型数值在有线网络上应为0。
如果您在使用带有纠错功能的调制解调器,将时延设为50至100毫秒的数值。
如果您在使用扩展频谱无线电,将时延设为10至100毫秒的数值。
"时延"数值可以是0至32767毫秒。
MaxIQ参数将供Modbus地址00####和01####使用的I和Q点数设为0至128之间的数值。
数值0禁止所有向输入和输出的读取。
建议使用的MaxIQ数值是128,该数值可在S7-200中存取所有的I和Q点。
MaxAI参数将供Modbus地址03##x使用的字输入(AI)寄存器数目设为0至32之间的数值。
数值0禁止模拟输入的读数。
建议使用的MaxAI数值如下,这些数值可允许存取所有的S7-200模拟输入:
*0用于CPU 221
*16用于CPU 222
*32用于CPU 224、226和226XM
MaxHold参数设定供Modbus地址04##x使用的V存中的字保持寄存器数目。
例如,为了允许主设备存取2000个字节的V存,将MaxHold设为1000个字的数值(保持寄存器)。
HoldStart参数是V存中保持寄存器的起始地址。
该数值一般被设为VB0,因此HoldStart参数被设为&VB0(VB0地址)。
其他V存地址可指定为保持寄存器的起始地址,以便在项目的其他地方使用VB0。
Modbus主设备可存取V存MaxHold 个字数,从HoldStart开始。
MBUS_INIT指令完成时,"完成"输出打开。
"错误"输出字节包含执行指令的结果。
请参阅Modbus从属协议执行错误代码中可能因执行指令而产生的错误条件。
MBUS_SLAVE指令被用于为Modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答Modbus请求。
在每次扫描且EN输入开启时执行该指令。
MBUS_SLAVE指令无输入参数。
当MBUS_SLAVE指令对Modbus请求作出应答时,"完成"输出打开。
如果没有需要服务的请求时,"完成"输出关闭。
"错误"输出包含执行该指令的结果。
该输出只有在"完成"打开时才有效。
如果"完成"关闭,错误参数不会改变。
请参阅Modbus从属协议执行错误代码中可能因执行该指令而导致的错误条件。
错误代码说明
0 无错误
1 存围错误
2 非法波特率或校验
3 非法从属地址
4 非法Modbus参数值
5 保持寄存器与Modbus从属符号重叠
6 收到校验错误
7 收到CRC错误
8 非法功能请求/功能不受支持
9 请求中的非法存地址
10 从属功能未启用
程序举例如下:
NETWORK 2
//首次扫描时初始化Modbus从属协议
//将从站地址设为6,将端口0设为9600波特,将校验设为无校验,
//不允许存取所有的I、Q和AI数值,允许存取20台保存寄存器(40个字节)//从VB1000开始(即VB1000- VB1039)。
程序书写后,需要对Modbus进行存取区的设定,如下:
在菜单栏下:文件》库存储区--库存储区分配
在库存储区分配中,设立分配地址,确定。
PLC启动运行后,如下:
SM的用法
4,modbus通讯对应的针脚为3,8,3脚为正,8脚为负5,做主站时
Holdstart的格式是&VB1600(1000即划定好的区域起始地址),因为765开始的780个字节分给了程序做了背景块,这地方不能重复,否则通讯会报错10。