9楼:我在原帖中讲过“...只得选用CP340将称重数据传送给PLC,该数据为ASCII码,”这已经是做完的事情,问题是传到PLC的ASCII码,如何再传送给组态王,让组态王显示称重数据,如果组态王有将传送来的ASCII码的变量自动转换为BCD码形式,就没有这个问题了,难道你的意思是CP340直接与组态王通信?我不明白你回帖的目的是想说明什么?请赐教
说了半天,你组态王要求显示 BCD码数值啊; 那你可以在PLC 程序中吧ASCII 码 转换成BCD 码,然后传送在指定的连续字节中,注意字节序问题,既作为一个字 高低字节序问题,组态王和PLC 也有他的协议;再在组态王中设置好读取地址不就行啦!
我猜测,是组态王发读取命令PLC 接收, PLC接收到相应的读/写命令( 协议中定义好的 ) 后,PLC 在把相应的地址的数据发送到端口,也就是组态王接收;所以这就是被动半双工通讯啊; PLC 端要根据协议 编写好 通讯和 转换程序(准备数据),才能和组态王正确通讯啊!
通讯的基本原理都差不多的; 楼主好好看看协议吧!
引用wyb2866255 的回复内容:16楼:你说的很对,原来是想在组态王去做,可是查了命令语言函数,没有找到将ASCII吗转换为BC码的命令语句,又考虑如在组态王里编程转换,从运行速度上要比在PLC慢,所以就在PLC编程进行转换。向你请教,如有6位ASCII码,放在对应的数据区里,组态王应选用那种数据形式把它取过来,用什么脚本语言,怎样编写,请详告知,这里先谢谢了!
说的没错,组态王中转换,等于是你效率低了,本来在PLC 中转换后,可能一个字就可以了,但直接把ASCII码传给组态王,这样通讯要多读取若干个字节;
但在实践应用中,可能差不不是那么明显;
我出帖的目的是S7-300没有ASCII码转换为BCD的指令,怎样通过自己编程来实现它。你回答了这个问题吗?
// 你上面没提到BCD码,你发的主题似乎重点是“如何编程才能使PLC将正确数据传送给组态王。 ”
你可以先用ASCII 码转换整数指令转换 ,再用 整数转换BCD 码指令转换不就行了;