西门子1200-RS232通讯编程
默认3线制,全双工通讯,三根线全接。 流量控制:默认无,如需带握手协议,旋转硬件RTS始终打开
定义起始字符
定义结束字符
建立接收数据块
第一步 第二步 第三步
建立发送数据块
第一步 第二步 第三步
两个数据块属性里,去掉优化的块访问,前面的√
找到指令
EN_R=1,表示一直接收数据 PORT选硬件里的接口 BUFFER:表示的意思,将接收到的数据存到DB1(新建的接收数据块),从X0.0(第一个字符)开始存起,注意数据错位,比如,以特殊字符开始和结束,会和以太网指令一样,第一次收3个数据,第二次收数据存到第4个数据区里 写法 P#DB1.DBX0.0敲空格,到下一行,输入BYTE 10
写入需要发送的数据
串口助手链接: https://pan.baidu.com/s/1o8n8qds 密码: yf6e 1.搜索空闲串口 2.选择当前串口,填写串口参数 3.勾选16进制显示 4.填写完需要发送的数据,按手动发送。注意,程序允许,发送起始和结束字符为,FE,FF
可以看到新的数据,并不是从rcv1开始存的,而是继续之前的位置存下去。 所以,不建议每次发送不定长数据。 为了保证数据有效性,可以定义特殊字符开始和结束,但是要保证,每次发送定长数据列。
上升沿触发一次发送指令
如果是电脑和PLC连接,电脑为DB9公头,PLC为DB9公头,做交叉线即可。注意,5脚需要接线。 短接电脑2脚和3脚,自发自收,验证电脑串口好坏 短接PLC的2脚和3脚,自发自收,验证PLC的串口好坏 推荐启用开始和结束字符,每次定长发送。 或者,不做任何定义,来什么收什么,数据的安全定义为上位机定义起始字符,PLC来什么收什么,收完检测起始字符。
感谢大家!