小弟第一次做从站,上回用狗做主站成了,这回难住了。
用ASCII 9600 8 1 无校验 用的是FB7 FB8 做的,需要发送10个32位的数
我这么做用抓包工具SSCOM32抓着数了,是“00 00 00 XX 00 00 00 XX....."40个数,XX就是我要的16进制的数以此类推,但是浙大那边解析不了。浙大那边和我要PLC地址,动能码,等东西,可是我在组态的时候 根本就没看到啊 。我在网上看还要自己编写报文头和校验尾,这个真不会。请各位大侠帮帮忙告诉下 ,或者有和我差不多的示例也行,小弟感激不尽啊。
问题补充:
小弟的信箱 928266877@qq.com 我上传的图片就是我编写的程序
图片说明:
最佳答案
楼主用cp341和xp248通讯,如果采用的是ascii协议,那浙大那边是不需要plc地址等信息的。
先确定双方协商的协议报文,确定了报文结构,然后读写数据就可以了。
还需要注意的是,双方必须使用485通讯。
关于报文头尾的问题,那是报文结构定义中确定了。可以有报文头尾,也可以没有报文头尾。
浙大那边,只需要配置好串口基本信息,波特率、停止位、校验位等,与你plc组态中的一致。
然后那边使用GW_GETBYTE功能块,读取数据就行了。
http://wenku.baidu.com/link?url=tTyWLx6L5KW2G_Fx8sCjgwiIiLjs9Na2h0AMiO0ZufVRybJCwycqfn9CtuslvFIjYVyonnePWFw6efhQY5U9XRF4pZJyhPCTmmBmNxdEpFG
提问者对于答案的评价:
大哥能不能说的具体点,怎么定义报文结构,浙大那边用什么块配置好串口基本信息,波特率、停止位、校验位,我看浙大那边用了4,5种方法用的块都用PLC地址啊 ,但是你给的方向是对的 ,最好大哥能把西门子和浙大两边都怎么做,描述以下,谢谢了 能者多劳啊 呵呵
专家置评
如果双方是在ASCII 通信方式基础上约定报文格式,那么只需要将对方需要的数信息作为普通数据发送给对方就可以了。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc225306.html