PIC��Ƭ�C(j��)�c�|��������ͨ�ŵ�MODBUS�f(xi��)�h��(sh��)�F(xi��n)
�����н�(j��ng)����Ҫ�^��ϵ�y(t��ng)���\(y��n)�Р�B(t��i)�������\(y��n)�Ѕ���(sh��)���|�����܉�ֱ�^������(d��ng)���@ʾ�\(y��n)�Ѕ���(sh��)���\(y��n)�Р�B(t��i)������ͨ�^�|�����������ֱ����ϵ�y(t��ng)�\(y��n)�Ѕ���(sh��)���˙C(j��)�����Ժ�����Ƭ�C(j��)�V����(y��ng)���ڹ����I(l��ng)���У��c�|����������ɽM�����õ��˙C(j��)�����h(hu��n)�����|�����͆�Ƭ�C(j��)ͨ�ţ���Ҫ����(j��)�|�������õ�ͨ�Ņf(xi��)�h���Ƭ�C(j��)��������(y��ng)��ͨ�ų�����Modbus�f(xi��)�h������Modicon��˾�Ƴ���һ�N��Ч֧�ֿ�����֮�g�Լ���������(j��ng)�ɾW(w��ng)�j(lu��)��������̫�W(w��ng)���������O(sh��)��֮�g�M(j��n)��ͨ�ŵąf(xi��)�h��������PIC16F877��Ƭ�C(j��)���˙C(j��)�������˾��eView MT510T���|������������B��ͨ�ų�����_�l(f��)�^����
1 ϵ�y(t��ng)�Y(ji��)��(g��u)
��(sh��)�F(xi��n)�|�����c��Ƭ�C(j��)��ͨӍ����Ҫ�ǽ�QͨӍ�f(xi��)�h�Ć��}������ʹ���_�ŵ�ModbusͨӍ�f(xi��)�h�����|��������վ����Ƭ�C(j��)����վ��eView�|��������֧��ModbusͨӍ�f(xi��)�h�������Ƭ�C(j��)Ҳ֧��Modbus�f(xi��)�h���Ϳ����M(j��n)��ͨ�������|�����c��Ƭ�C(j��)֮�g���õ�RS-232C���ݽӿ�ֱ���B������ݔ�����O(sh��)�Þ�9600kb/s���D1��ԓϵ�y(t��ng)���·�D��
��PIC16F877��Ƭ�C(j��)RC6��RC7���O(sh��)�Þ鮐������ͨ��ģʽ����(j��ng)�^MAX232оƬ��TTL�ƽ�D(zhu��n)�Q��RS232�ƽ�����ceView�|����plc[RS-232]�ӿ����B���������Ӳ���B����eView�|����PLC[RS-232]�ӿڵĹ��_2��TXD�����_3��RXD��
2 Modbusͨ�Ņf(xi��)�h��B
Modbusͨ�Ņf(xi��)�h��һ�N���е�����ͨ�Ņf(xi��)�h���W(w��ng)�j(lu��)��H��һ�_(t��i)�O(sh��)�ÿ��������C(j��)���QMaster���������O(sh��)������ęC(j��)���QSlaver�������C(j��)���辎̖(h��o)���ęC(j��)��횾�̖(h��o)���f(xi��)�h���x�����C(j��)��ԃ���ęC(j��)��(y��ng)�����Ϣ����ʽ��ͨ�ŕr(sh��)�����C(j��)������ęC(j��)�l(f��)��Ո(q��ng)����Ϣ����������(y��ng)��ַ�a�ďęC(j��)����ͨӍ����������ȥ��ַ�a���xȡ��Ϣ������]�г��e(cu��)���t��(zh��)������(y��ng)���΄�(w��)��Ȼ��ш�(zh��)�нY(ji��)�����o���C(j��)����ęC(j��)���յ���У�(y��n)�a�c���C(j��)Ӌ(j��)��IJ�ͬ���t�f����(sh��)��(j��)��ͨ���^���г��F(xi��n)�e(cu��)�`���ęC(j��)���@��Ո(q��ng)��ҕ��oЧ�����ܴ��a������������ָ���ؑ�(y��ng)��Ϣ���e(cu��)�`����ͬ�r(sh��)��(sh��)��(j��)�ΰ������������e(cu��)�`��Ϣ�Ĵ��a����(d��ng)���C(j��)�յ��@һ��Ϣ�r(sh��)����(hu��)���°l(f��)��Ո(q��ng)����Ϣ��У�(y��n)��ʽ�֞�LCR�����͔�(sh��)��(j��)��ACSII�r(sh��)��У�(y��n)��CRC�����͔�(sh��)��(j��)����M(j��n)�ƕr(sh��)��У�(y��n)���@�����CRCУ�(y��n)��ʽ��
��Ϣ��ݔ�鮐����ʽ�������ֹ�(ji��)���λ������վ֮�gͨӍ���ָ�ʽ���1��ʾ��
��1 ͨӍ���ָ�ʽ
�ָ�ʽ�����Д�(sh��)��(j��)�� | 10λ���M(j��n)�� |
��ʼλ | 1λ |
��(sh��)��(j��)λ | 8λ |
��żУ�(y��n)λ | �o |
ֹͣλ | 1λ |
Modbus�f(xi��)�h��֧��ASCII�a����M(j��n)�Ƹ�ʽ�Ĕ�(sh��)��(j��)��ݔ��ACSII�a��ʽ��ÿһ��(g��)�ֹ�(ji��)��(sh��)��(j��)�փɂ�(g��)�ֹ�(ji��)���ͣ����M(j��n)�Ʒ�ʽ����һ��(g��)�ֹ�(ji��)���������˜p�ٔ�(sh��)��(j��)��ݔ����һ���x���M(j��n)�Ɣ�(sh��)��(j��)��ʽ������(g��)�^(q��)���S�l(f��)�͵��ֹ�(ji��)����16�M(j��n)�Ƶ�0��9��A��F�����M(j��n)����Ϣ����(bi��o)��(zh��n)�Y(ji��)��(g��u)�飺
��ʼ�Y(ji��)��(g��u) ��4�ֹ�(ji��)�ĕr(sh��)�g
��ַ�a 1�ֹ�(ji��)
���ܴa 1�ֹ�(ji��)
��(sh��)��(j��)�^(q��) N�ֹ�(ji��)
�e(cu��)�`У�(y��n) 16λCRC�a
�Y(ji��)���Y(ji��)��(g��u) ��4�ֹ�(ji��)�ĕr(sh��)�g
���M(j��n)��ģʽ������Ϣ�_ʼ������Ҫ3.5��(g��)�ַ����oֹ�r(sh��)�g������(j��)ʹ�õIJ�������������Ӌ(j��)���@��(g��)�oֹ�r(sh��)�g���l(f��)�������һ��(g��)�ַ�����Ҳ��һ��(g��)����3.5��(g��)�ַ����oֹ�r(sh��)�g��Ȼ����ܰl(f��)��һ��(g��)�µ���Ϣ���W(w��ng)�j(lu��)�ϵ��O(sh��)���B�m(x��)�O(ji��n)�y(c��)�W(w��ng)�j(lu��)�ϵ���Ϣ�������oֹ�r(sh��)�g��
3 ��Ƭ�C(j��)�c�|������ַ�Č�(du��)��(y��ng)�P(gu��n)ϵ
eView�|����ֻ֧��Bit��Word��ַ��ͣ�����(sh��)�H�Ć�Ƭ�C(j��)������������߀��Byte��Double Word�ȱ�ʾ������������M(j��n)��ͨ�ŕr(sh��)����Ҫ�ц�Ƭ�C(j��)���|�����Ĕ�(sh��)��(j��)�M(j��n)��׃�Q���|��������Ԫ���xȡ��ַ���O(sh��)�������LW��0x��1x��3x��4x��RWI��RW���x�(xi��ng)��������LW��ʾԓԪ���xȡ�����|������(n��i)���ĵ�ַ��������Ԫ���ĵ�ַ��0x��ʾ�xȡ���ǿ�������ݔ����̖(h��o)��1x��ʾ�xȡ�Ŀ�������ݔ����̖(h��o);3x��4xָ�������ļĴ�����ַ���������4x�ǿ��x�Ɍ�����3x��ֻ�x��;RWI��RW�����|�����ă�(n��i)����ַ�����o��������ʹ���@Щ�xȡ��ַ���O(sh��)����ͣ��|���������@ʾ���O(sh��)���������Ĵ�����I/O�ڵĔ�(sh��)ֵ���ԡ���(sh��)ֵݔ�롱Ԫ��������ͨ�^��С�I�P��ݔ�딵(sh��)��(j��)�����O(sh��)�Æ�Ƭ�C(j��)�Ĵ�����I/O�ڵĔ�(sh��)ֵ���������(d��ng)�ˡ��|�l(f��)��ַ������ô��(d��ng)���|�ؕr(sh��)��ݔ��Ĕ�(sh��)��(j��)�ͱ���ŵ���ָ���Ć�Ƭ�C(j��)��ַ����
4 ͨ�ų�����_�l(f��)
�|�����c��Ƭ�C(j��)��ͨ�ų������PIC��Ƭ�C(j��)C�Z�Ծ��������g�����x��Hitech��˾��PICC���g������������ģ�K������ʼ��ģ�K����(sh��)��(j��)����ģ�K�Լ���(sh��)��(j��)̎�����l(f��)��ģ�K�����������̈D��D2��ʾ��
PIC16F877��Ƭ�C(j��)USART����ģ�K����һ��(g��)��λ�IJ����ʰl(f��)����BRG��BRG֧��USART��ͬ���ͮ���������ʽ����SPBRG�Ĵ�������һ��(g��)��(d��)���İ�λ���r(sh��)�����������ڮ�����ʽ�£��l(f��)�͠�B(t��i)/���ƼĴ���TXSTA��BRGHλ����D2�����Á����Ʋ���������(du��)���п��M(j��n)�еij�ʼ�����£�
GIE=1; %ȫ���Д����S;
SPBRG=25; %�O(sh��)�ò����ʞ�9600��
TXSTA=0x04�� %�x�����ٷ�ʽ��
RCSTA=0x80; %���Sͬ�����пڹ�����
RTISC6=1��
TRISC7=1�� %��C�ڵ�RC6��RC7�O(sh��)�Þ鮐������ͨ��ģʽ��
PFIE=1; %����ӿ��Д����S��
RCIE=1; %USART���������S��
TXIE=1; %USART�l(f��)�������S��
��(sh��)��(j��)����ģ�K��һ��(g��)�Дຯ��(sh��)�M����ԓ�Дຯ��(sh��)���|�����l(f��)����Modbus��(sh��)��(j��)���惦(ch��)��һ��(g��)�Զ��x�Ĕ�(sh��)�M������(d��ng)һ����(sh��)��(j��)������r(sh��)���ý��սY(ji��)����(bi��o)־λ��1���D(zhu��n)�딵(sh��)��(j��)̎�����l(f��)��ģ�K������ͨ�Ž������ĺ����ǽ�����λ�Ĵ���RSR����(d��ng)���յ�ֹͣ�r(sh��)�����RCREG���_�������RSR�Ͱѽ��յ��Ĕ�(sh��)��(j��)����RCREG��������ɺ��������Д���(bi��o)־λRCIF����1����(sh��)�H���Д��Ƿ�CPU푑�(y��ng)������ͨ�^�O(sh��)������ӿ��Д����S�Ĵ���PIE1���Д����SλRCIE��������
��(sh��)��(j��)̎�����l(f��)��ģ�K��(zh��)��Modbus�f(xi��)�h���ܴa��(du��)��(y��ng)���\(y��n)����eView�|�����c��Ƭ�C(j��)��Modbus�f(xi��)�hͨ�ţ��õ���Modbus���ܴa���2��ʾ��
��2 ͨ�ų����õ��Ĺ��ܴa
���ܴa | eView��ַ���Q | �� �x | �� �� |
01 | 0x | �x�_�P(gu��n)��ݔ�� | �xȡһ·���·�_�P(gu��n)��ݔ����B(t��i) |
03 | 4x | �x���ּĴ��� | �xȡһ��(g��)�����(g��)���ּĴ����Ĕ�(sh��)��(j��) |
05 | 0x 1x | ���_�P(gu��n)��ݔ�� | ��(qi��ng)��һ·�^����ġ���/�ϡ�ݔ�� |
16 | 3x 4x | �A(y��)�ö�Ĵ��� | �Ѿ��w�Ĕ�(sh��)��(j��)�b��һ�M�B؞�ı��ּĴ��� |
��Modbus���ܴa03�������f���|��������Ƭ�C(j��)�Č�(sh��)�Hͨ�Ŕ�(sh��)��(j��)��ʽ�����Ƭ�C(j��)��ַ��̖(h��o)��01H���|������Ҫ�鿴��Ƭ�C(j��)�е�ַ��0031H�ļĴ�����ֵ���l(f��)�������ʽ���3��ʾ��
��3 �|�����l(f��)�͔�(sh��)��(j��)�Y(ji��)��(g��u)
��(sh��)��(j��)�����Q | ��(sh��)��(j��)ֵ |
��ַ | 01 |
���ܴa | 03 |
�xȡ��ַ��λ | 00 |
�xȡ��ַ��λ | 31 |
�xȡ��(sh��)��(j��)��(g��)��(sh��)��λ | 00 |
�xȡ��(sh��)��(j��)��(g��)��(sh��)��λ | 01 |
CRCУ�(y��n)�a��λ | D5 |
CRCУ�(y��n)�a��λ | C5 |
���O(sh��)��Ƭ�C(j��)�е�ַ��0031H�ļĴ����Д���05H���t��Ƭ�C(j��)�Ļ؏�(f��)�������4��ʾ��
��4 ��Ƭ�C(j��)��(y��ng)��(sh��)��(j��)�Y(ji��)��(g��u)
��(sh��)��(j��)�����Q | ��(sh��)��(j��)ֵ |
��ַ | 01 |
���ܴa | 03 |
�xȡ�ֹ�(ji��)��(sh��) | 02 |
�Ĵ�����(sh��)��(j��)��λ | 00 |
�Ĵ�����(sh��)��(j��)��λ | 05 |
CRCУ�(y��n)�a��λ | 78 |
CRCУ�(y��n)�a��λ | 47 |
��(d��ng)�������_(d��)��38400kb/s�r(sh��)��ͨ����Ȼ��(w��n)���ɿ�����ϵ�y(t��ng)�����B���·�������M�B(t��i)�`����ͨ�ſɿ��Ըߵ����c(di��n)�����ѳɹ���(y��ng)�������ϺY�x����ϵ�y(t��ng)�(xi��ng)Ŀ��������Modbusͨ�Ņf(xi��)�h���_���Ե����c(di��n)�������M(j��n)�ڿ���������ͨ�Ŵ���֧��ԓ�f(xi��)�h����˱�������(sh��)�F(xi��n)�IJ���Modbus�f(xi��)�h�Ĵ���ͨ�ž��ЏV���đ�(y��ng)�Ãr(ji��)ֵ��

����admin ����ĕr(sh��)�g��2018-05-08