故事作者:henry.wang

最近创作

看看TA的故事

串口232通讯第三方设备技术支持的故事

已锁定

henry.wang

  • 帖子

    997
  • 精华

    31
  • 被关注

    373

论坛等级:至圣

注册时间:2016-05-25

白金 白金 如何晋级?

串口232通讯第三方设备技术支持的故事

978

8

2022-10-20 16:02:46

很久没写故事了,昨天远程支持了一下现场,过程感觉挺有意思的,给大家分享一下,希望以后大家遇到类似的问题的时候提供些参考。

现场调试西门子的1200PLC通讯第三方设备,走232协议,通讯不上。说实话,232我从来没用过,但是485,USS,Modbus RTU都用过,既然都是串口,用起来差别应该不大,找个手册看一眼怎么配置就可以了,应该很容易搞定。

https://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/smartsms/029.html

关于串口通讯的资料还是很全的。现场人员在工控领域也是成手,我就没问关于1200PLC串口指令/配置啥的基本问题,毕竟资料还是很全的。

第三方手册关于232的接口描述写的也算清晰:


目标是通过1200PLC发指令改第三方设备的ont1参数,对应的指令也就是0001.45ont1 [Enter],那就是0001.45ont1 +回车,在这里有一个问题需要注意,美国信息交换标准码ASCII


表中可以看到回车对应的16进制确实也是0D,那么把16进制的0D转换为字符放在指令的最后就可以了,在1200PLC里通过MOVE指令就可以将16#0D转换为字符’$R’。回车对应的字符是$R,那么指令就应该是’ 0001.45ont1$R’。

另外一个需要注意的点就是发送这条指令给第三方以字符串发送的话可能会有问题,因为西门子规定了前两个字节是系统占用,要从byte2开始,但是到第三方认不认就不好说了。


所以电话请教了西门子的400,告诉我尽量别用string,用字符数组。用字符数组发数据特意用Chars_TO_Strg验证了一下,发现发的数据就是0001.45ont1$R没有问题。

 


到这里,本以为打个电话就结束了,却没想到才刚刚开始。从现场得到的信息就是通讯不上,发的指令没反应,虽然说第三方控制器厂家的说明书关于通讯指令的说明一看就是英语翻译过来的“返回后评估命令(回车键或0x0D十六进制字符) 收到返回后,控制器评估命令,发送与命令相关的所有数据,并关闭含“<3”的数据包。”但是按照以往的经验,其实就是收到回车指令后才评估收的指令,如果<3的数据包就舍弃了,这指令也不应该有错啊。现场能用USB电脑连接第三方控制器,用串口助手发就可以收到,莫非硬件有问题了。告诉现场把地连接了一下,发个接收的指令,竟然能收到,而且发的时候告诉我发送灯也闪烁,Done也可以抓到信号。排除了硬件的问题,我就找第三方控制器厂家去了,控制器是美国货,国内的技术支持都是应用工程师,串口协议需要问美国人,现场等的干着急,我合计那就远程一下,我亲自试试,怎么他就收不到呢?

故事讲到这里,插播一则广告,推荐两款远程协助软件,一个是TeamViewer,一个是向日葵,都非常好用。

远程打开,看到发送指令,我当时无语了,以0.625HZ的频率在发指令。轮询的概念啊。。。



串口232通讯第三方设备技术支持的故事 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3227条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。