fsm.c File Reference


Detailed Description

EtherCAT finite state machines.

Definition in file fsm.c.

Go to the source code of this file.

Functions

void ec_fsm_master_start (ec_fsm_t *fsm)
 Master state: START.
void ec_fsm_master_broadcast (ec_fsm_t *fsm)
 Master state: BROADCAST.
void ec_fsm_master_read_states (ec_fsm_t *fsm)
 Master state: STATES.
void ec_fsm_master_validate_vendor (ec_fsm_t *fsm)
 Master state: VALIDATE_VENDOR.
void ec_fsm_master_validate_product (ec_fsm_t *fsm)
 Master state: VALIDATE_PRODUCT.
void ec_fsm_master_rewrite_addresses (ec_fsm_t *fsm)
 Master state: ADDRESS.
void ec_fsm_master_configure_slave (ec_fsm_t *fsm)
 Master state: CONF.
void ec_fsm_master_scan_slaves (ec_fsm_t *fsm)
 Master state: SCAN.
void ec_fsm_master_write_eeprom (ec_fsm_t *fsm)
 Master state: EEPROM.
void ec_fsm_slavescan_start (ec_fsm_t *fsm)
 Slave state: START_READING.
void ec_fsm_slavescan_address (ec_fsm_t *fsm)
 Slave state: ADDRESS.
void ec_fsm_slavescan_state (ec_fsm_t *fsm)
 Slave state: STATE.
void ec_fsm_slavescan_base (ec_fsm_t *fsm)
 Slave state: BASE.
void ec_fsm_slavescan_datalink (ec_fsm_t *fsm)
 Slave state: DATALINK.
void ec_fsm_slavescan_eeprom_size (ec_fsm_t *fsm)
 Slave state: EEPROM_SIZE.
void ec_fsm_slavescan_eeprom_data (ec_fsm_t *fsm)
 Slave state: EEPROM_DATA.
void ec_fsm_slavescan_end (ec_fsm_t *fsm)
 Slave state: END.
void ec_fsm_slaveconf_init (ec_fsm_t *fsm)
 Slave state: INIT.
void ec_fsm_slaveconf_sync (ec_fsm_t *fsm)
 Slave state: SYNC.
void ec_fsm_slaveconf_preop (ec_fsm_t *fsm)
 Slave state: PREOP.
void ec_fsm_slaveconf_fmmu (ec_fsm_t *fsm)
 Slave state: FMMU.
void ec_fsm_slaveconf_saveop (ec_fsm_t *fsm)
 Slave state: SAVEOP.
void ec_fsm_slaveconf_op (ec_fsm_t *fsm)
 Slave state: OP.
void ec_fsm_slaveconf_end (ec_fsm_t *fsm)
 Slave state: END.
void ec_fsm_sii_start_reading (ec_fsm_t *fsm)
 SII state: START_READING.
void ec_fsm_sii_read_check (ec_fsm_t *fsm)
 SII state: READ_CHECK.
void ec_fsm_sii_read_fetch (ec_fsm_t *fsm)
 SII state: READ_FETCH.
void ec_fsm_sii_start_writing (ec_fsm_t *fsm)
 SII state: START_WRITING.
void ec_fsm_sii_write_check (ec_fsm_t *fsm)
 SII state: WRITE_CHECK.
void ec_fsm_sii_write_check2 (ec_fsm_t *fsm)
 SII state: WRITE_CHECK2.
void ec_fsm_sii_end (ec_fsm_t *fsm)
 SII state: END.
void ec_fsm_sii_error (ec_fsm_t *fsm)
 SII state: ERROR.
void ec_fsm_change_start (ec_fsm_t *fsm)
 Change state: START.
void ec_fsm_change_check (ec_fsm_t *fsm)
 Change state: CHECK.
void ec_fsm_change_status (ec_fsm_t *fsm)
 Change state: STATUS.
void ec_fsm_change_code (ec_fsm_t *fsm)
 Change state: CODE.
void ec_fsm_change_ack (ec_fsm_t *fsm)
 Change state: ACK.
void ec_fsm_change_check_ack (ec_fsm_t *fsm)
 Change state: CHECK ACK.
void ec_fsm_change_end (ec_fsm_t *fsm)
 Change state: END.
void ec_fsm_change_error (ec_fsm_t *fsm)
 Change state: ERROR.
int ec_fsm_init (ec_fsm_t *fsm, ec_master_t *master)
 Constructor.
void ec_fsm_clear (ec_fsm_t *fsm)
 Destructor.
void ec_fsm_reset (ec_fsm_t *fsm)
 Resets the state machine.
void ec_fsm_execute (ec_fsm_t *fsm)
 Executes the current state of the state machine.
void ec_fsm_master_action_process_states (ec_fsm_t *fsm)
 Master action: PROC_STATES.
void ec_fsm_master_action_next_slave_state (ec_fsm_t *fsm)
 Master action: Get state of next slave.
void ec_fsm_master_action_addresses (ec_fsm_t *fsm)
 Master action: ADDRESS.

Variables

const ec_code_msg_t al_status_messages []
 Application layer status messages.


Function Documentation

void ec_fsm_master_start ec_fsm_t fsm  ) 
 

Master state: START.

Starts with getting slave count and slave states.

Definition at line 161 of file fsm.c.

void ec_fsm_master_broadcast ec_fsm_t fsm  ) 
 

Master state: BROADCAST.

Processes the broadcast read slave count and slaves states.

Parameters:
fsm  finite state machine

Definition at line 175 of file fsm.c.

void ec_fsm_master_read_states ec_fsm_t fsm  ) 
 

Master state: STATES.

Fetches the AL- and online state of a slave.

Parameters:
fsm  finite state machine

Definition at line 398 of file fsm.c.

void ec_fsm_master_validate_vendor ec_fsm_t fsm  ) 
 

Master state: VALIDATE_VENDOR.

Validates the vendor ID of a slave.

Parameters:
fsm  finite state machine

Definition at line 449 of file fsm.c.

void ec_fsm_master_validate_product ec_fsm_t fsm  ) 
 

Master state: VALIDATE_PRODUCT.

Validates the product ID of a slave.

Parameters:
fsm  finite state machine

Definition at line 519 of file fsm.c.

void ec_fsm_master_rewrite_addresses ec_fsm_t fsm  ) 
 

Master state: ADDRESS.

Checks, if the new station address has been written to the slave.

Parameters:
fsm  finite state machine

Definition at line 569 of file fsm.c.

void ec_fsm_master_configure_slave ec_fsm_t fsm  ) 
 

Master state: CONF.

Starts configuring a slave.

Parameters:
fsm  finite state machine

Definition at line 696 of file fsm.c.

void ec_fsm_master_scan_slaves ec_fsm_t fsm  ) 
 

Master state: SCAN.

Executes the sub-statemachine for the scanning of a slave.

Parameters:
fsm  finite state machine

Definition at line 600 of file fsm.c.

void ec_fsm_master_write_eeprom ec_fsm_t  ) 
 

Master state: EEPROM.

Parameters:
fsm  finite state machine

Definition at line 712 of file fsm.c.

void ec_fsm_slavescan_start ec_fsm_t fsm  ) 
 

Slave state: START_READING.

First state of the slave state machine. Writes the station address to the slave, according to its ring position.

Parameters:
fsm  finite state machine

Definition at line 760 of file fsm.c.

void ec_fsm_slavescan_address ec_fsm_t  ) 
 

Slave state: ADDRESS.

Parameters:
fsm  finite state machine

Definition at line 777 of file fsm.c.

void ec_fsm_slavescan_state ec_fsm_t  ) 
 

Slave state: STATE.

Parameters:
fsm  finite state machine

Definition at line 801 of file fsm.c.

void ec_fsm_slavescan_base ec_fsm_t  ) 
 

Slave state: BASE.

Parameters:
fsm  finite state machine

Definition at line 833 of file fsm.c.

void ec_fsm_slavescan_datalink ec_fsm_t  ) 
 

Slave state: DATALINK.

Parameters:
fsm  finite state machine

Definition at line 867 of file fsm.c.

void ec_fsm_slavescan_eeprom_size ec_fsm_t  ) 
 

Slave state: EEPROM_SIZE.

Parameters:
fsm  finite state machine

Definition at line 904 of file fsm.c.

void ec_fsm_slavescan_eeprom_data ec_fsm_t  ) 
 

Slave state: EEPROM_DATA.

Parameters:
fsm  finite state machine

Definition at line 964 of file fsm.c.

void ec_fsm_slavescan_end ec_fsm_t fsm  ) 
 

Slave state: END.

End state of the slave state machine.

Parameters:
fsm  finite state machine

Definition at line 1076 of file fsm.c.

void ec_fsm_slaveconf_init ec_fsm_t  ) 
 

Slave state: INIT.

Parameters:
fsm  finite state machine

Definition at line 1088 of file fsm.c.

void ec_fsm_slaveconf_sync ec_fsm_t  ) 
 

Slave state: SYNC.

Parameters:
fsm  finite state machine

Definition at line 1190 of file fsm.c.

void ec_fsm_slaveconf_preop ec_fsm_t  ) 
 

Slave state: PREOP.

Parameters:
fsm  finite state machine

Definition at line 1215 of file fsm.c.

void ec_fsm_slaveconf_fmmu ec_fsm_t  ) 
 

Slave state: FMMU.

Parameters:
fsm  finite state machine

Definition at line 1271 of file fsm.c.

void ec_fsm_slaveconf_saveop ec_fsm_t  ) 
 

Slave state: SAVEOP.

Parameters:
fsm  finite state machine

Definition at line 1296 of file fsm.c.

void ec_fsm_slaveconf_op ec_fsm_t  ) 
 

Slave state: OP.

Parameters:
fsm  finite state machine

Definition at line 1327 of file fsm.c.

void ec_fsm_slaveconf_end ec_fsm_t fsm  ) 
 

Slave state: END.

End state of the slave state machine.

Parameters:
fsm  finite state machine

Definition at line 1350 of file fsm.c.

void ec_fsm_sii_start_reading ec_fsm_t fsm  ) 
 

SII state: START_READING.

Starts reading the slave information interface.

Parameters:
fsm  finite state machine

Definition at line 1363 of file fsm.c.

void ec_fsm_sii_read_check ec_fsm_t fsm  ) 
 

SII state: READ_CHECK.

Checks, if the SII-read-datagram has been sent and issues a fetch datagram.

Parameters:
fsm  finite state machine

Definition at line 1389 of file fsm.c.

void ec_fsm_sii_read_fetch ec_fsm_t fsm  ) 
 

SII state: READ_FETCH.

Fetches the result of an SII-read datagram.

Parameters:
fsm  finite state machine

Definition at line 1420 of file fsm.c.

void ec_fsm_sii_start_writing ec_fsm_t fsm  ) 
 

SII state: START_WRITING.

Starts reading the slave information interface.

Parameters:
fsm  finite state machine

Definition at line 1476 of file fsm.c.

void ec_fsm_sii_write_check ec_fsm_t  ) 
 

SII state: WRITE_CHECK.

Parameters:
fsm  finite state machine

Definition at line 1496 of file fsm.c.

void ec_fsm_sii_write_check2 ec_fsm_t  ) 
 

SII state: WRITE_CHECK2.

Parameters:
fsm  finite state machine

Definition at line 1520 of file fsm.c.

void ec_fsm_sii_end ec_fsm_t fsm  ) 
 

SII state: END.

End state of the slave SII state machine.

Parameters:
fsm  finite state machine

Definition at line 1556 of file fsm.c.

void ec_fsm_sii_error ec_fsm_t fsm  ) 
 

SII state: ERROR.

End state of the slave SII state machine.

Parameters:
fsm  finite state machine

Definition at line 1567 of file fsm.c.

void ec_fsm_change_start ec_fsm_t  ) 
 

Change state: START.

Parameters:
fsm  finite state machine

Definition at line 1579 of file fsm.c.

void ec_fsm_change_check ec_fsm_t  ) 
 

Change state: CHECK.

Parameters:
fsm  finite state machine

Definition at line 1597 of file fsm.c.

void ec_fsm_change_status ec_fsm_t  ) 
 

Change state: STATUS.

Parameters:
fsm  finite state machine

Definition at line 1630 of file fsm.c.

void ec_fsm_change_code ec_fsm_t  ) 
 

Change state: CODE.

Parameters:
fsm  finite state machine

Definition at line 1722 of file fsm.c.

void ec_fsm_change_ack ec_fsm_t  ) 
 

Change state: ACK.

Parameters:
fsm  finite state machine

Definition at line 1759 of file fsm.c.

void ec_fsm_change_check_ack ec_fsm_t  ) 
 

Change state: CHECK ACK.

Parameters:
fsm  finite state machine

Definition at line 1784 of file fsm.c.

void ec_fsm_change_end ec_fsm_t  ) 
 

Change state: END.

Parameters:
fsm  finite state machine

Definition at line 1825 of file fsm.c.

void ec_fsm_change_error ec_fsm_t  ) 
 

Change state: ERROR.

Parameters:
fsm  finite state machine

Definition at line 1835 of file fsm.c.

int ec_fsm_init ec_fsm_t fsm,
ec_master_t master
 

Constructor.

Parameters:
fsm  finite state machine
master  EtherCAT master

Definition at line 98 of file fsm.c.

void ec_fsm_clear ec_fsm_t fsm  ) 
 

Destructor.

Parameters:
fsm  finite state machine

Definition at line 123 of file fsm.c.

void ec_fsm_reset ec_fsm_t fsm  ) 
 

Resets the state machine.

Parameters:
fsm  finite state machine

Definition at line 134 of file fsm.c.

void ec_fsm_execute ec_fsm_t fsm  ) 
 

Executes the current state of the state machine.

Parameters:
fsm  finite state machine

Definition at line 147 of file fsm.c.

void ec_fsm_master_action_process_states ec_fsm_t fsm  ) 
 

Master action: PROC_STATES.

Processes the slave states.

Parameters:
fsm  finite state machine

Definition at line 285 of file fsm.c.

void ec_fsm_master_action_next_slave_state ec_fsm_t fsm  ) 
 

Master action: Get state of next slave.

Parameters:
fsm  finite state machine

Definition at line 351 of file fsm.c.

void ec_fsm_master_action_addresses ec_fsm_t fsm  ) 
 

Master action: ADDRESS.

Looks for slave, that have lost their configuration and writes their station address, so that they can be reconfigured later.

Parameters:
fsm  finite state machine

Definition at line 489 of file fsm.c.


Generated on Wed Aug 2 18:41:44 2006 for IgH EtherCAT master by  doxygen 1.4.6