PLC为S7-200smart,从站设备为称重测量链,通讯方式为RS485自由口通讯(四线制,实际上为RS422通讯,200smart本身不支持422通讯也没有相应模块,因此使用一个中继器将四线的RS485转换成2线制的RS485,连接PLC之前用串口助手测试过可以正常通讯。
称重测量链需要发送指令才会返回数据,如发送msv?;指令,会返回当前重量值; 输出格式设置的为ASCII格式,波特率设置为115200,无校验。
目前问题如下:1.编译时没有问题,下载时会提示编译错误;
2.在网上查到的资料,在中断程序触发时都用的是中断时间23,端口0接收消息完成,但是类似我手上这种,没有指令的发送,就没有数据会返回,那应该也不会有消息接收完成,因此程序中用的是中断事件9,端口0发送数据完成。
3.按照西门子操作手册上的示例去描摹了一遍,没有发生编译问题,正常下载,但是监控时,写入进去的数据全部都是空的,比如VB0中写入5,代表5个字符,VB1中为m,VB2中为s,监控时VB1和VB2中都没有值,格式设置的是ASCII,格式设置上应该是没有问题的。
4.SMB34在中断事件0中使用时,是否是指中断时间1扫描过后,等待SMB34设定的时间后,再执行中断时间2内的程序。
纯自学,看视频和网上查资料为主,基础薄弱,望各位大佬在斧正时能稍微浅显易懂些,谢谢。
自由口通讯问题请教.zip
指令如下:
Network 1
// SMB30定义为:无校验,8个数据位,波特率115200,通讯协议为自由口;
// SMB87定义为:启用通讯,无开始和结束字符,启用空闲线时间检测;
// SMW90定义为:空闲线时间为5ms;
// SMW92定义为:定时器为消息间定时器;
// SMB94定义为:最大接收20个字符;
// 启用中断程序0,中断事件9,端口0发送信息完成
// 启用中断程序2,中断事件23,端口0接收消息完成,XMT发送指令用以激活中断程序0
中断程序0:
//将MSB34赋值为20ms,中断程序1和中断程序2之间的时间间隔为20ms,启用中断程序1,XMT用以激活中断程序1
中断程序1:
//VB0定义为5个字符,指令为MSV?; 发送给端口0,20ms后启用接收程序
中断程序2:
中继器图片:已连接串口助手测试过,转成2线RS485之后可以正常通讯,PLC的端口0为3+ 8-,接线正反都测试过,都没有数据发送和返回。