A programmable logic controller capable of improving the expandability of a distributed control system and a programming tool for the programmable logic controller are provided. A programmable logic controller (PLC) that constitutes a distributed control system (1) includes: a variable table (Tb) that includes variable information including identification symbols for identification of a plurality of PLCs and variable names of reference variables, the variable information being set for each of the reference variables; a storage device (15) that has a memory region (Mn) for storing the reference variables; and an interface circuit (12) that mutually converts communication data for use in communication between the PLC and a different PLC and the reference variables stored in the memory region (Mn). The reference variables are variables mutually referenced by the plurality of PLCs.